maven-profile实现springboot多版本配置打包
在进行项目开发时,我们经常需要写多个项目的配置文件,以满足不同环境下使用,如dev,prod…
在使用maven进行项目打包时,我们就需要指定相应的配置文件。
在这我们通过maven profile的方式对多版本的配置文件进行管理。
首先新建一个普通的springboot项目,并新建多个配置文件,如application.yaml
、application-dev.yaml
和application-prod.yaml
。
在三个配置文件中分别对端口号进行配置8080
、8081
、8082
。
此时,我们在maven中对多个版本的配置文件进行管理。pom.xml
如下:
<profiles><profile><id>default</id><properties><activatedProfile></activatedProfile></properties><!-- 默认激活 --><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>dev</id><properties><!-- 指定要激活的yaml文件 --><activatedProfile>dev</activatedProfile></properties></profile><profile><id>prod</id><properties><activatedProfile>prod</activatedProfile></properties></profile>
</profiles><!-- 配置静态资源过滤 -->
<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>
</build>
在application.yaml
中进行配置:
server:port: 8080
spring:profiles:active: '@activatedProfile@' # 读取激活的配置
我们编写一个controller
进行测试:
@RestController
public class TestController {@RequestMapping(value = "/test",method = RequestMethod.GET)public String test(){return "test";}
}
测试
在使用maven对项目进行打包时,可以对配置文件进行选择。
-
不勾选任何配置,直接进行项目打包。
打包完成后,执行命令
java -jar maven-profile-0.0.1-SNAPSHOT.jar
运行项目。成功启动项目后,访问http://localhost:8080/test
成功。这是因为,我们在
pom.xml
中配置了默认激活default
环境,也就是application.yaml
。 -
当我们勾选
prod
对项目进行打包时,打包后再次启动项目。打包完成后,执行命令
java -jar maven-profile-0.0.1-SNAPSHOT.jar
运行项目。成功启动项目后,访问http://localhost:8082/test
成功。成功激活了application-prod.yaml
。