spring配置文件动态读取pom.xml属性
需求:
配置文件中的
spring.profiles.active=${env}需要打包时动态绑定。
方案
1.在pom.xml文件中配置启用占位符替换
<profiles>
<!-- 本地开发 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activebydefault>true</activebydefault>
</activation>
</profile>
<!-- 其他环境 -->
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>maven 中 <filtering> 的默认值是 false。
这意味着在复制资源文件时,maven 不会对文件进行占位符替换(即过滤)。
2.在配置文件中配置 spring.profiles.active=@env@或者 spring.profiles.active=${env}
3.打包时选择环境 mvn clean package -pprod
- -p 参数用于激活 maven 构建中的特定配置文件(profile)
自定义占位符
如果担心冲突,那么可以自定义占位符。
<build>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-resources-plugin</artifactid>
<version>3.2.0</version>
<configuration>
<delimiters>
<delimiter>#{</delimiter>
<delimiter>}</delimiter>
</delimiters>
<usedefaultdelimiters>false</usedefaultdelimiters>
</configuration>
</plugin>
</plugins>
</build>总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论