一、通过profile包含不同的属性文件,获取不同的配置
1、工程文件截图
2、pom.xml 配置
配置一:
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<!-- 这里的属性名是随便取的,可以在后续配置中引用 -->
<profiles.dir>dev</profiles.dir>
</properties>
<!-- 是否默认 -->
</profile>
<profile>
<!-- 生产环境 -->
<id>pro</id>
<properties>
<profiles.dir>pro</profiles.dir>
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!--设置默认属性-->
</activation>
</profile>
</profiles>
配置二:
<build>
<finalName>xxx</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- **/*.properties 是指包括根目录或子目录所有properties类型的文件 -->
<!-- 排除dev、test目录下的文件 -->
<excludes>
<exclude>dev/*</exclude>
<exclude>pro/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${profiles.dir}</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
maven 打包命令:
clean package -DskipTests=true -Pdev
最终编译生成的文件如下:
同时打包生成 xxx.jar
二、通过占位符的形式
1、目标结构
config 目录下的 properties文件对应的包含
spring.profiles.active=dev
或
spring.profiles.active=test
2、pom.xml文件配置
<profiles>
<!-- 默认激活 dev 开发环境 -->
<!-- 线上使用 mvn 打包添加 -Pproduction 变量 -->
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<package.environment>dev</package.environment>
</properties>
<build>
<filters>
<filter>config/dev.properties</filter>
</filters>
</build>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<package.environment>test</package.environment>
</properties>
<build>
<filters>
<filter>config/test.properties</filter>
</filters>
</build>
</profile>
</profiles>
<finalName>${project.name}</finalName>
<resources>
<!-- 用来预处理项目文件 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>bootstrap.yml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/docker</directory>
<includes>
<include>Dockerfile</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
bootstrap.yml的配置;
spring:
profiles:
active: @spring.profiles.active@
3、maven 命令
编译生成的打包前的目录
同时bootstrap.yml 中的配置为
spring:
profiles:
active: dev
---
mvaen 打包的命令
-pl pip-monitor -am clean package -DskipTests=true -P dev
这是模块的打包。