springboot和maven配置多profile

Maven多环境配置实践


配置多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 界面勾选设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值