Maven分步詳解多環(huán)境配置與應(yīng)用流程
多環(huán)境開發(fā)

我們平常都是在自己的開發(fā)環(huán)境進(jìn)行開發(fā),當(dāng)開發(fā)完成后,需要把開發(fā)的功能部署到測(cè)試環(huán)境供測(cè)試人員進(jìn)行測(cè)試使用,等測(cè)試人員測(cè)試通過后,我們會(huì)將項(xiàng)目部署到生成環(huán)境上線使用。
這個(gè)時(shí)候就有一個(gè)問題是,不同環(huán)境的配置是不相同的,如不可能讓三個(gè)環(huán)境都用一個(gè)數(shù)據(jù)庫,所以就會(huì)有三個(gè)數(shù)據(jù)庫的url配置,我們?cè)陧?xiàng)目中如何配置?要想實(shí)現(xiàn)不同環(huán)境之間的配置切換又該如何來實(shí)現(xiàn)呢?
maven提供配置多種環(huán)境的設(shè)定,幫助開發(fā)者在使用過程中快速切換環(huán)境。具體實(shí)現(xiàn)步驟:
步驟1
父工程配置多個(gè)環(huán)境,并指定默認(rèn)激活環(huán)境
<profiles>
<!--開發(fā)環(huán)境-->
<profile>
<id>env_dep</id>
<properties>
<jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
</properties>
<!--設(shè)定是否為默認(rèn)啟動(dòng)環(huán)境-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--生產(chǎn)環(huán)境-->
<profile>
<id>env_pro</id>
<properties>
<jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
</properties>
</profile>
<!--測(cè)試環(huán)境-->
<profile>
<id>env_test</id>
<properties>
<jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url>
</properties>
</profile>
</profiles>
步驟2
執(zhí)行安裝查看env_dep環(huán)境是否生效

查看到的結(jié)果為:

步驟3
切換默認(rèn)環(huán)境為生產(chǎn)環(huán)境
<profiles>
<!--開發(fā)環(huán)境-->
<profile>
<id>env_dep</id>
<properties>
<jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
</properties>
</profile>
<!--生產(chǎn)環(huán)境-->
<profile>
<id>env_pro</id>
<properties>
<jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
</properties>
<!--設(shè)定是否為默認(rèn)啟動(dòng)環(huán)境-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--測(cè)試環(huán)境-->
<profile>
<id>env_test</id>
<properties>
<jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url>
</properties>
</profile>
</profiles>
步驟4
執(zhí)行安裝并查看env_pro環(huán)境是否生效
查看到的結(jié)果為jdbc:mysql://127.2.2.2:3306/ssm_db

雖然已經(jīng)能夠?qū)崿F(xiàn)不同環(huán)境的切換,但是每次切換都是需要手動(dòng)修改,如何來實(shí)現(xiàn)在不改變代碼的前提下完成環(huán)境的切換呢?
步驟5
命令行實(shí)現(xiàn)環(huán)境切換

步驟6
執(zhí)行安裝并查看env_test環(huán)境是否生效
查看到的結(jié)果為jdbc:mysql://127.3.3.3:3306/ssm_db

總結(jié)
總結(jié)來說,對(duì)于多環(huán)境切換只需要兩步即可:
父工程中定義多環(huán)境
<profiles>
<profile>
<id>環(huán)境名稱</id>
<properties>
<key>value</key>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
...
</profiles>
使用多環(huán)境(構(gòu)建過程)
mvn 指令 -P 環(huán)境定義ID[環(huán)境定義中獲取]
跳過測(cè)試
前面在執(zhí)行install指令的時(shí)候,Maven都會(huì)按照順序從上往下依次執(zhí)行,每次都會(huì)執(zhí)行test,
對(duì)于test來說有它存在的意義,
- 可以確保每次打包或者安裝的時(shí)候,程序的正確性,假如測(cè)試已經(jīng)通過在我們沒有修改程序的前提下再次執(zhí)行打包或安裝命令,由于順序執(zhí)行,測(cè)試會(huì)被再次執(zhí)行,就有點(diǎn)耗費(fèi)時(shí)間了。
- 功能開發(fā)過程中有部分模塊還沒有開發(fā)完畢,測(cè)試無法通過,但是想要把其中某一部分進(jìn)行快速打包,此時(shí)由于測(cè)試環(huán)境失敗就會(huì)導(dǎo)致打包失敗。
遇到上面這些情況的時(shí)候,我們就想跳過測(cè)試執(zhí)行下面的構(gòu)建命令,具體實(shí)現(xiàn)方式有很多:
IDEA工具實(shí)現(xiàn)跳過測(cè)試

圖中的按鈕為Toggle 'Skip Tests' Mode,
Toggle翻譯為切換的意思,也就是說在測(cè)試與不測(cè)試之間進(jìn)行切換。
點(diǎn)擊一下,出現(xiàn)測(cè)試畫橫線的圖片,如下:

說明測(cè)試已經(jīng)被關(guān)閉,再次點(diǎn)擊就會(huì)恢復(fù)。
這種方式最簡單,但是有點(diǎn)"暴力",會(huì)把所有的測(cè)試都跳過,如果我們想更精細(xì)的控制哪些跳過哪些不跳過,就需要使用配置插件的方式。
配置插件實(shí)現(xiàn)跳過測(cè)試
在父工程中的pom.xml中添加測(cè)試插件配置
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>false</skipTests>
<!--排除掉不參與測(cè)試的內(nèi)容-->
<excludes>
<exclude>**/BookServiceTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
skipTests:如果為true,則跳過所有測(cè)試,如果為false,則不跳過測(cè)試
excludes:哪些測(cè)試類不參與測(cè)試,即排除,針對(duì)skipTests為false來設(shè)置的
includes: 哪些測(cè)試類要參與測(cè)試,即包含,針對(duì)skipTests為true來設(shè)置的
命令行跳過測(cè)試

使用Maven的命令行,mvn 指令 -D skipTests
注意事項(xiàng):
- 執(zhí)行的項(xiàng)目構(gòu)建指令必須包含測(cè)試生命周期,否則無效果。例如執(zhí)行compile生命周期,不經(jīng)過test生命周期。
- 該命令可以不借助IDEA,直接使用cmd命令行進(jìn)行跳過測(cè)試,需要注意的是cmd要在pom.xml所在目錄下進(jìn)行執(zhí)行。
到此這篇關(guān)于Maven分步詳解多環(huán)境配置與應(yīng)用流程的文章就介紹到這了,更多相關(guān)Maven多環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在idea中利用maven實(shí)現(xiàn)多環(huán)境配置自動(dòng)打包的流程步驟
- maven如何使用profiles多環(huán)境配置
- SpringBoot使用Maven實(shí)現(xiàn)多環(huán)境配置管理
- springboot+maven多環(huán)境動(dòng)態(tài)配置及編譯失敗的解決方案(步驟詳解)
- Springboot與Maven多環(huán)境配置的解決方案
- maven profile實(shí)現(xiàn)多環(huán)境配置的示例
- 使用maven profile指定配置文件打包適用多環(huán)境的方法
- maven打包時(shí)配置多環(huán)境參數(shù)的實(shí)現(xiàn)
相關(guān)文章
Java時(shí)間輪算法的實(shí)現(xiàn)代碼示例
本篇文章主要介紹了Java時(shí)間輪算法的實(shí)現(xiàn)代碼示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
Java面試必備之AQS阻塞隊(duì)列和條件隊(duì)列
我們大概知道AQS就是一個(gè)框架,把很多功能都給實(shí)現(xiàn)了(比如入隊(duì)規(guī)則,喚醒節(jié)點(diǎn)中的線程等),我們?nèi)绻褂玫脑捴恍枰獙?shí)現(xiàn)其中的一些方法(比如tryAcquire等)就行了!這次主要說說AQS中阻塞隊(duì)列的的入隊(duì)規(guī)則還有條件變量,需要的朋友可以參考下2021-06-06
Java正則驗(yàn)證電話,手機(jī),郵箱,日期,金額的方法示例
這篇文章主要介紹了Java正則驗(yàn)證電話,手機(jī),郵箱,日期,金額的方法,結(jié)合具體實(shí)例形式分析了Java針對(duì)電話,手機(jī),郵箱,日期,金額的正則判定操作技巧,需要的朋友可以參考下2017-03-03
Spring數(shù)據(jù)庫連接池實(shí)現(xiàn)原理深入刨析
開發(fā)web項(xiàng)目,我們肯定會(huì)和數(shù)據(jù)庫打交道,因此就會(huì)涉及到數(shù)據(jù)庫鏈接的問題。在以前我們開發(fā)傳統(tǒng)的SSM結(jié)構(gòu)的項(xiàng)目時(shí)進(jìn)行數(shù)據(jù)庫鏈接都是通過JDBC進(jìn)行數(shù)據(jù)鏈接,我們每和數(shù)據(jù)庫打一次交道都需要先獲取一次鏈接,操作完后再關(guān)閉鏈接,這樣子效率很低,因此就出現(xiàn)了連接池2022-11-11

