maven-maven使用-P參數(shù)打包不同環(huán)境問題
maven-maven使用-P參數(shù)打包不同環(huán)境
一般的,開發(fā)環(huán)境有dev, test 和 pro,他們的配置多有不同,那么就可以使用 maven -P
這個(gè)參數(shù)進(jìn)行多環(huán)境打包
如 clean install -Dmaven.test.skip=true -P pro
,就可以切換成生產(chǎn)環(huán)境,和 jenkins 配合簡直不要太爽!!
舉個(gè)例子
以 boot 項(xiàng)目來說,現(xiàn)有目錄結(jié)構(gòu):
/src /main /java /resources /static /templates application.yml application-dev.yml application-pro.yml application-test.yml
application.yml:
server: port: 8080 spring: profiles: # @spring.profiles.active@ 變量將會(huì)隨著參數(shù)的傳入被替換 active: @spring.profiles.active@
然后三個(gè)不同環(huán)境的配置文件分別為:
application-dev.yml:
server: port: 8080 spring: application: name: mpp-dev
application-pro.yml:
server: port: 8081 spring: application: name: mpp-pro
application-test.yml:
server: port: 8082 spring: application: name: mpp-test
配置 maven 的 pom 文件,默認(rèn)激活 dev 環(huán)境:
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <spring.profiles.active>dev</spring.profiles.active> </properties> </profile> <profile> <id>test</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <spring.profiles.active>test</spring.profiles.active> </properties> </profile> <profile> <id>pro</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> //spring.profiles.active即在application.yml文件中 //定義的參數(shù)@spring.profiles.active@ <spring.profiles.active>pro</spring.profiles.active> </properties> </profile> </profiles>
根據(jù)環(huán)境過濾只有當(dāng)前環(huán)境的配置文件:
<resources> <resource> <directory>src/main/resources</directory> <!-- 替換占位符--> <filtering>true</filtering> <excludes> <exclude>application-*.yml</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <!-- 替換占位符--> <filtering>true</filtering> <includes> <include>application-${spring.profiles.active}.yml</include> </includes> </resource> </resources>
需要加入 plugin 為:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> </plugin>
測試
在當(dāng)前項(xiàng)目 pom 文件所在的目錄下打開命令行,輸入 clean package -Dmaven.test.skip=true -P pro
可以看到:
/target /classes /com application.yml application-pro.yml
打開 application.yml
文件:
server: port: 8080 spring: profiles: active: pro
可以發(fā)現(xiàn)之前 @spring.profiles.active@
變量已經(jīng)被替換成了 pro
,而且配置文件只關(guān)于生產(chǎn)環(huán)境,而且dev 和 test 的配置文件都已經(jīng)被過濾了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis注解開發(fā)之實(shí)現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢
本文主要詳細(xì)介紹了MyBatis注解開發(fā)中,實(shí)現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢,文中有詳細(xì)的代碼示例,對學(xué)習(xí)MyBatis有一定的參考價(jià)值,需要的朋友可以參考閱讀2023-04-04MyBatis 中 type-aliases-package的作用(簡化類型映射)
MyBatis中type-aliases-package的作用是簡化類型映射,通過指定包路徑,MyBatis會(huì)自動(dòng)掃描該包下的所有類并為這些類生成類型別名,減少XML配置文件中的冗長代碼,感興趣的朋友跟隨小編一起看看吧2024-11-11Spring Boot應(yīng)用程序同時(shí)支持HTTP和HTTPS協(xié)議的實(shí)現(xiàn)方法
如今,企業(yè)級應(yīng)用程序的常見場景是同時(shí)支持HTTP和HTTPS兩種協(xié)議,這篇文章考慮如何讓Spring Boot應(yīng)用程序同時(shí)支持HTTP和HTTPS兩種協(xié)議,需要的朋友可以參考下2019-10-10JDK動(dòng)態(tài)代理,代理接口沒有實(shí)現(xiàn)類,實(shí)現(xiàn)動(dòng)態(tài)代理方式
這篇文章主要介紹了JDK動(dòng)態(tài)代理,代理接口沒有實(shí)現(xiàn)類,實(shí)現(xiàn)動(dòng)態(tài)代理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java注解詳解及實(shí)現(xiàn)自定義注解的方法
這篇文章主要介紹了Java注解詳解及實(shí)現(xiàn)自定義注解的方法,本文給大家介紹了jdk中預(yù)定義的一些注解及自定義注解的相關(guān)知識,需要的朋友可以參考下2022-06-06maven多模塊項(xiàng)目依賴管理與依賴?yán)^承詳解
這篇文章主要介紹了maven多模塊項(xiàng)目依賴管理與依賴?yán)^承詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12JAVA基礎(chǔ)類庫之String類,StringBuffer類和StringBuilder類
這篇文章主要介紹了Java中基礎(chǔ)類庫的String類,StringBuffer類和StringBuilder類,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2021-09-09Java關(guān)鍵字final、static使用總結(jié)
final方法不能被子類的方法覆蓋,但可以被繼承。用static修飾的代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(jī)(JVM)加載類時(shí),就會(huì)執(zhí)行該代碼塊,下面通過本文給大家分享Java關(guān)鍵字final、static使用總結(jié),感興趣的朋友一起看看吧2017-07-07