前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven构建配置和激活SpringBoot配置文件

Maven构建配置和激活SpringBoot配置文件

作者头像
Yuyy
发布2022-09-21 09:49:08
9470
发布2022-09-21 09:49:08
举报

本文最后更新于 511 天前,其中的信息可能已经有所发展或是发生改变。

一、Maven配置里使用SpringBoot配置里的属性

代码语言:javascript
复制
            <resource>
                <directory>src/main/resources/${profiles.active}</directory>
                <filtering>true</filtering>
                <includes>
                    <include>*.properties</include>
                    <include>*.xml</include>
                </includes>
            </resource>
  • maven里的<filtering>true</filtering>
    1. Spring EL表达式和MAVEN的占位符表达式长得一样,但两者默认进水不犯河水,不能再Spring的范围内取maven的参数
    2. filtering的作用就是打通两者的连接, 让井水犯河水, 具体来说是让Spring的范围内能取到maven的参数
    3. filtering的使用要配合resource一起使用: 前者开启打通连接,后者指定打通的范围.
  • 如果你的项目继承了spring-boot-starter-parent,如果想在application.properties中使用maven的占位符以获取maven的参数,此时就不能用${},因为可能会与EL表达式冲突,怎么办? 此时parent依赖将maven占位符表达式默认改为@var@的形式. 所以只能用@var@替代${var}

二、激活不同的profile

代码语言:javascript
复制
    <profiles>
          <profile>
            <!--不同环境Profile的唯一id-->
              <id>dev</id>
              <properties>                  
                <!--profiles.active是自定义的字段(名字随便起),自定义字段可以有多个-->
                <profiles.active>dev</profiles.active>
              </properties>
              <activation>
                  <activeByDefault>true</activeByDefault>
              </activation>
          </profile>
          <profile>
              <id>telework</id>
              <properties>
                  <profiles.active>telework</profiles.active>
              </properties>
          </profile>
          <profile>
              <id>sit</id>
              <properties>
                  <profiles.active>sit</profiles.active>
              </properties>
          </profile>
          <profile>
              <id>pre</id>
              <properties>
                  <profiles.active>pre</profiles.active>
              </properties>
          </profile>
          <profile>
              <id>prod</id>
              <properties>
                  <profiles.active>prod</profiles.active>
              </properties>
          </profile>
      </profiles>
  • 当我们打包项目时,激活不同的环境,profiles.active字段就会被赋予不同的值
  • 使用maven打包时通过-P参数,-P后跟上profile的唯一id,如mvn clean package -Ptest
  • 总结:可以通过maven命令给profiles.active赋予不同的值

三、通过maven指定SpringBoot激活哪套配置文件

spring.profiles.active=@profiles.active@

  • 这儿就是第一点说的,SpringBoot配置文件里使用maven属性
  • 到这里,上述知识可以连接起来了
    • 通过第一点可知:maven配置文件里读取SpringBoot的spring.profiles.active属性
    • 通过第三点可知:SpringBoot的spring.profiles.active属性读取maven的自定义属性profiles.active
    • 通过第二点可知:通过maven命令指定maven的profiles.active属性
    • 结论:可以通过maven命令决定打包和使用哪套配置文件
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-2-01 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Maven配置里使用SpringBoot配置里的属性
  • 二、激活不同的profile
  • 三、通过maven指定SpringBoot激活哪套配置文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档