springboot maven项目不自动替换profile占位符
spring-boot maven项目不自动替换profile占位符
- 场景: application*.yml 文件不配置可正常替换profile占位符,增加bootstarp.yml且在bootstrap.yml 中配置spring.profiles.active后,编译后的bootstrap.yml占位符不自动替换, 还是 @xxx@
- 原因: 项目继承自 spring-boot-starter-parent, pom默认配置了resource及占位符替换, 只配置了application*.yml
<!-- spring-boot-starter-parent中的默认配置 --> <resource> <filtering>true</filtering> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/application*.yml</include> <include>**/application*.yaml</include> <include>**/application*.properties</include> </includes> </resource>
如果要适用bootstrap.yml,在需要pom中添加
<!-- 模块pom中添加 --> <resource> <filtering>true</filtering> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/application*.yml</include> <include>**/bootstrap*.yml</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <excludes> <exclude>**/application*.yml</exclude> <exclude>**/bootstrap*.yml</exclude> </excludes> </resource>
注: spring-boot-starter-parent定义了占位符为 @, 普通 ${xxx}打包时不会替换,只替换 @xxx@
<resource.delimiter>@</resource.delimiter>
下一篇:
数码管动态静态显示原理