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>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论