一、配置文件格式基本选择
新建好的SpringBoot项目起初的目录如下。新建四个文件,application.yml 、 application-dev.yml 、 application-test.yml、 application-pro.yml .

分支后的名字,比如dev 、test 、pro 用于不同的环境。如果开发的时候,使用dev分支。项目上线切换到pro分支。测试用test分支。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hanzhenya</groupId>
<artifactId>learnspringboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>learnspringboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- SpringBoot WEB依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>pro</id>
<properties>
<spring.profiles.active>pro</spring.profiles.active>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<spring.profiles.active>test</spring.profiles.active>
</properties>
</profile>
</profiles>
</project>
其中标红的部分是和application.yml配合配置@spring.profiles.active@的,如果开发的时候,使用dev分支。项目上线切换到pro分支。测试用test分支。
在application.yml中添加如下配置。
server:
servlet:
#项目根目录
context-path: /study/springboot
spring:
application:
#项目名称
name: web-study-springboot
#激活的分支
profiles:
active: @spring.profiles.active@
在application-dev.yml 中配置项目端口为8081。
server: port: 8081
在application-test.yml 中配置项目端口为8082。
server: port: 8082
在application-pro.yml 中配置项目端口为8083。
server: port: 8083
二、测试
启动可以看到启动的事dev分支

三、 打包
1 打包的时候只需要进行如下图勾选 dev环境、test环境或者pro生产环境。

2 勾选好环境 点击lifecycle中的package或者install进行打包。
或者使用命令打包: mvn clean package -P prd; 指定环境进行打包(如果不指定,打包的还是pom.xml中的默认的环境dev)。
验证:打包完成后可去target/classes/application.yml中进行验证环境是否正确。