- 新建application-dev.yml和application-prod.yml。application.yml中放公共配置,dev和prod则放私有需要选择的配置。
- yml文件中要进行声明:
application-dev.yml
spring:
profiles: dev
application-prod.yml
spring:
profiles: prod
application-prod.yml中要进行动态指定:
spring:
name: zframe-pucp
jmx.default-domain: zframe-pucp
main.banner-mode: "off"
profiles:
active: @profile.active@ //此处@profile.active@为根据选择动态指定配置文件。
- pom.xml中添加以下代码:
<!--动态配置文件-->
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile.active>dev</profile.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
</properties>
</profile>
</profiles>
- 打包时,未选择的配置文件应该去除:
pom.xml文件添加配置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!--先排除所有的配置文件--> <excludes> <exclude>application*.yml</exclude> </excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<!--引入所需环境的配置文件--> <filtering>true</filtering> <includes> <include>application.yml</include> <include>application-${profile.active}.yml</include> </includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
```