Maven中怎么根據(jù)不同環(huán)境打包不同配置文件?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
蜀山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),蜀山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為蜀山上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的蜀山做網(wǎng)站的公司定做!
首先貼出整個(gè)pom文件:
4.0.0 CMS CMS war 0.0.1-SNAPSHOT Cms http://maven.apache.org 4.1.6.RELEASE UTF-8 dev dev true test test prod prod Cms src maven-compiler-plugin 3.3 1.7 org.apache.maven.plugins maven-war-plugin 2.1.1 WebRoot\WEB-INF\web.xml WebRoot false Cms src/main/resoreces/${package.environment} WEB-INF/classes true src true **/*.properties **/*.xml
簡(jiǎn)單說(shuō)明幾個(gè)地方:
dev dev true test test prod prod
此處借助profiles定義幾個(gè)不同的環(huán)境文件夾,相同的需要在項(xiàng)目里面創(chuàng)建同id的文件夾,用來(lái)存放特定環(huán)境的配置文件。
我之前的resource目錄:
我的目錄結(jié)構(gòu)是相對(duì)復(fù)雜的一種有2層目錄,只有一層目錄的也一樣更簡(jiǎn)單。外層xml文件,還有一個(gè)properties文件夾。這里我針對(duì)不同環(huán)境需要更改的配置文件有4個(gè),標(biāo)紅的。
再看一下改造后resource的目錄結(jié)構(gòu):
隨便展開(kāi)一個(gè)dev文件夾是這樣:
可見(jiàn)需要更改的配置文件,需要copy到各個(gè)環(huán)境的文件夾當(dāng)中去,而不需要更改的文件,則不需要復(fù)制一份。
此處需要說(shuō)明的是,如果我指定的是dev,則maven會(huì)將dev下的所有文件拿出來(lái),db.xml覆蓋掉外面的db.xml,dev.properties文件夾中的配置文件會(huì)拿出來(lái)放到外面的properties文件夾中。所以說(shuō)這里是非常靈活的,你需要哪些文件定制,完全由自己來(lái)控制。
再來(lái)看pom文件
org.apache.maven.plugins maven-war-plugin 2.1.1 WebRoot\WEB-INF\web.xml WebRoot false test src/main/resources/${package.environment} WEB-INF/classes true
這里使用的是
maven-war-plugin
這個(gè)插件,此插件的功能是很強(qiáng)大的,想深入了解,可以到官網(wǎng)去看。
${package.environment}
動(dòng)態(tài)指定目錄,接收參數(shù)。
targetPath
目標(biāo)路徑。
另外說(shuō)2點(diǎn),這兩個(gè)標(biāo)簽
WebRoot\WEB-INF\web.xml WebRoot
1.如果maven打包錯(cuò)誤說(shuō)找不到web.xml,說(shuō)明你得項(xiàng)目結(jié)構(gòu)不是標(biāo)準(zhǔn)的,用webxml標(biāo)簽指定一下就可以了
2.如果jsp打包沒(méi)有的話,同樣的問(wèn)題,指定一下目錄,我的項(xiàng)目結(jié)構(gòu)就不是maven標(biāo)準(zhǔn)結(jié)構(gòu),所以需要指定一下。
改造完畢,接下來(lái)就是利用maven打包了。
mvn clean ; mvn compile;
mvn -P test package; 傳相應(yīng)環(huán)境參數(shù)就ok了
關(guān)于Maven中怎么根據(jù)不同環(huán)境打包不同配置文件問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。