开发环境、测试环境、生产环境--------我们的软件在不同的环境中,系统参数和配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件?Maven提供了一种方便的解决这种问题的方案,就是profile功能。
按照不同环境,我们读取不同的配置文件,假设有以下定义:
profile 文件名 配置文件内容dev application-dev.yml server.port 8090
test application-test.yml server.port 8091
prod application-prod.yml server.port 8092
完成后目录结构如下图所示
2.2 定义运行参数
根据Spring Boot规范,我们修改application.yml文件添加以下内容
2.3 修改Maven pom配置
修改父工程pom.xml文件,添加以下配置
<!--profile配置-->
<profiles>
<profile>
<id>dev</id>
<activation>
<!--默认开启dev配置-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prd</id>
<properties>
<profileActive>prd</profileActive>
</properties>
</profile>
</profiles>
<!--编译配置-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
<!--Resource文件编译配置-->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application*.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application-${profileActive}.yml</include>
<include>application.yml</include>
<include>logback.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>