【Java】springboot多环境打包时如何只打包当前环境的配置文件
1.springboot工程里面有application.properties和application-dev.properties和application-prod.properties这些文件。
其中application.properties中可以进行环境切换
spring.profiles.active=dev
现在我使用下面的参数进行打包,但打包后的文件中始终都含有这三个配置文件。
mvn clean package -Dmaven.test.skip=true -Dprofiles.active=devmvn clean package -Dmaven.test.skip=true -Pprod
而实际上我想要的效果是开发环境就只打包一个配置文件。请问该如何操作呢?
回答
在资源文件夹下建三个文件夹, 分别对应放置各自的application.properties文件
src/main/resources/dev/application.propertiessrc/main/resources/test/application.properties
src/main/resources/pro/application.properties
在pom.xml里先定义三个profile
<profiles> <profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<modifier></modifier>
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!-- 默认的,不加参数时执行这个profile -->
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<modifier>-test</modifier>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active>
<modifier>-pro</modifier>
</properties>
</profile>
</profiles>
在build的标签下, 先排除全部,再添加当前通过-P参数激活的profile:
<build> <resources>
<resource>
<directory>src/main/resources</directory>
<!-- 资源根目录排除各环境的配置,防止在生成目录中多余其它目录 -->
<excludes>
<exclude>test/*</exclude>
<exclude>pro/*</exclude>
<exclude>dev/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
</resources>
最后,编译时加-P参数即可, 如:
mvn -Ppro package
以上是 【Java】springboot多环境打包时如何只打包当前环境的配置文件 的全部内容, 来源链接: utcz.com/a/88675.html