文章目录
配置多profile有多种方案。
spring.profiles.active指定配置文件
例如配置文件为:
application.yml # 入口文件
application-local.yml # local
application-test.yml # test
application-prod.yml # prod
可以在application.yml预指定个如spring.profiles.active=local。
不同环境的启动命令添加-Dspring.profiles.active=***
-Dspring.profiles.active=local # 本地环境
-Dspring.profiles.active=test # 测试环境
-Dspring.profiles.active=prod # 生产环境
优点:实现了多profile,而且比较好掌握。
缺点:部署的时候每个环境脚本需要不同。
手动复制配置到dkh
application.yml
application-local.yml
application-test.yml
application-prod.yml
applicaation-dkh.yml # 无论哪个环境固定用这个
这里也有两种方式。
1、手动复制配置到applicaation-dkh.yml。 # 比较好掌握
2、通过maven profiles配置实现自动化。
通过maven profiles配置实现自动化(推荐)
结构:
application.yml
local/application-local.yml
test/application-test.yml
dev/application-dev.yml
prod/application-prod.yml
maven配置需要两部分
1、profiles
2、resources # 这部分也要配置上,否则实现不了效果
预期效果:
idea maven profiles界面勾选环境,打包后target目录多出一个application-dkh.yml文件,内容和环境一致。
maven配置-profile部分
<profiles>
<profile>
<id>local</id>
<properties>
<profiles.active>src/main/resources/local</profiles.active>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<profiles.active>src/main/resources/dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>src/main/resources/test</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>src/main/resources/prod</profiles.active>
</properties>
</profile>
</profiles>
activeByDefault这个代码在哪个模块下,哪个模块就是默认的。
maven配置-resources部分
<build>
<!-- 定义资源目录 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
</resource>
<resource>
<directory>${profiles.active}</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
区分spring.profiles.active和maven的profiles.active
这两个不一样。
spring部分
spring.profiles.active=dkh
maven部分
maven的profiles.active表示maven profile指定的哪个,
有多种方法可以实现。
1、通过mvn -P指定。
2、或者在idea maven | profiles 界面勾选设置。
Maven多环境配置实践
381

被折叠的 条评论
为什么被折叠?



