Spring Boot结合IDEA自带Maven插件怎么快速切换profile
这篇“Spring Boot结合IDEA自带Maven插件怎么快速切换profile”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring Boot结合IDEA自带Maven插件怎么快速切换profile”文章吧。
一、前言
IDEA
是目前 Java
开发者中使用最多的开发工具,它有着简约的设计风格,强大的集成工具,便利的快捷键。
在项目项目整个开发运维周期中,我们的的项目往往需要根据不同的环境,使用不同的文件配置。
比如以下部分:
默认:
application.properties/yml
共用配置:
application-common.properties/yml
开发环境:
application-dev.properties/yml
生产环境:
application-prod.properties/yml
测试环境:
application-test.properties/yml
在实际使用中通过在application.yml
文件中配置:
spring: profiles: active: dev
或application.properties
文件中配置:
spring.profiles.active=dev
置后Spring Boot
会激活application-${active}.properties/yml
的配置文件。
如此一来每次我们需要切换环境时只需要修改此配置即可。但此方式也明细的不足,比如:每次切换环境时都需要修改此配置,在修改后也存在文件误传Git
的风险,单体项目来说尚可接受,但对于Spring Cloud
微服务项目而言操作就很麻烦了。
二、配置详情
结合IDEA
自带的maven
插件来实现不同配置的切换,每次切换环境只要勾选就行了。
2.1 pom.xml修改
新增以下内容:
<build> <resources> <resource> <directory>class="lazy" data-src/main/resources</directory> <!-- 指定目录下的文件通过maven过滤器 --> <filtering>true</filtering> </resource> </resources></build><profiles> <profile> <id>dev</id> <properties> <!-- 环境标识,需要与配置文件的名称相对应 --> <profile.active>dev</profile.active> <nacos.username>nacos</nacos.username> <nacos.password>nacos</nacos.password> </properties> <activation> <!-- 默认环境 --> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>test</id> <properties> <!-- 环境标识,需要与配置文件的名称相对应 --> <profile.active>test</profile.active> <nacos.username>nacos</nacos.username> <nacos.password>nacos</nacos.password> </properties> </profile></profiles>
Maven
过滤器会替换文件中的占位符@变量名@
,可以查看编译后的文件,原本的占位符被变量值所替代。
2.2 bootstrap.yml/application.yml修改
spring: profiles: active: @profile.active@
注:占位符 ‘@maven中配置的变量名@’,我的名称为
profile.active
以上就是关于“Spring Boot结合IDEA自带Maven插件怎么快速切换profile”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341