SpringBoot学习笔记三之【多Profile文件的Maven发布使用】
在springboot工程中配置文件编写的时候可以使用application-{profile}.properties/yml,默认使用application.properties/yml,例如:
每个环境配置如下:
#application-dev.properties
server.port=8080
#application-test.properties
server.port=8082
#application-dev.properties
server.port=80
我们可以在application.properties/yml指定**哪个环境的配置文件,我们在发布的时候最终都是读取application.properties/yml中的配置:
#yml
spring:
profiles:
active: @[email protected] # 和我们pom.xml中的指定resource配置相同
#properties
spring.profiles.active=dev
pom.xml配置如下:
<dependencies>
<!-- Add typical dependencies for a web application web应用的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<!-- Package as an executable jar 可以将应用打成一个可执行的jar,通过java -jar,下面我会演示 -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 是否替换@[email protected]表示的maven properties属性值 -->
<filtering>true</filtering>
</resource>
<!-- profile -->
<resource>
<directory>${project.basedir}/src/main/profiles/${profiles.active}</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
或者我们通过命令行指定:
java -jar springboot-swk.jar --spring.profiles.active=dev
#使用maven打包命令
mvn clean package -Dmaven.test.skip=true -P prod
配置文件的加载位置优先级由高到低如下,并且高优先级覆盖低优先级,高优先级没有的配置使用低优先级互补
-file:./config/
-file:./
-classpath:/config/
-classpath:/
我们也可以通过在application.properties中修改加载文件的位置
spring.config.location=
当我们把配置都准备完毕之后,在idea右侧会出现Profiles选项如下:
这样我们就可以选中不同profile环境,然后执行install执行打包
当我们选中dev时,启动生成的jar
当我们选中prod时
如果我们打包时想跳过测试,右击install,选择create