版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/quanqxj/article/details/80592231
在做项目的时候,往往有多种环境,开发/测试/生产等,但不能每一次都去修改配置文件,于是可以通过配置来选择你所需的环境。
application-dev.yml:开发环境
application-test.yml:测试环境
application-prod.yml:生产环境
在pom.xml文件中,配置如下内容:
<profiles>
<!--开发环境-->
<profile>
<id>dev</id>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--测试环境-->
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
</properties>
</profile>
<!--生产环境-->
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
</properties>
</profile>
</profiles>
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources.${build.profile.id}</directory>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
application.yml中配置如下内容,就会默认加载开发环境的属性,其他同理 :
spring:
profiles:
active: dev
注:如果spring.profiles.active没有指定值,那么只会使用没有指定spring.profiles文件的值,也就是只会加载通用的配置。
application-dev.yml,这里根据自己的开发参数进行修改,我这里是多环境区分注册中心地址,示例代码如下:
server:
port: 8765
eureka:
instance:
hostname: 192.168.1.12
client:
serviceUrl:
defaultZone: http://192.168.1.12:1111/eureka/
其他环境同理配置即可
当我们通过命令要启动时通过--spring.profiles.active=xxx
来控制加载哪个环境的配置,如下:
java -jar xxx.jar --spring.profiles.active=dev 表示使用开发环境的配置
java -jar xxx.jar --spring.profiles.active=test 表示使用测试环境的配置
java -jar xxx.jar --spring.profiles.active=prod 表示使用生产环境的配置
若果需要单独打包,通过执行 mvn clean package -P ${profile}
来指定使用哪个profile即可