在開發(fā)maven項(xiàng)目時(shí),一般都會(huì)把配置文件放到src/main/resources目錄下,針對這個(gè)目錄,maven的resources對其進(jìn)行單獨(dú)的配置。
成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10余年時(shí)間我們累計(jì)服務(wù)了上千家以及全國政企客戶,如PE包裝袋等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致稱揚(yáng)。
resources配置一般如下:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>context.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>context.xml</exclude>
</excludes>
</resource>
</resources>
配置中一共有兩個(gè)resource,第一個(gè)resource配置是過濾src/main/resources目錄下文件context.xml,若文件中有類似${key}這樣的配置,就會(huì)根據(jù)maven的配置進(jìn)行覆蓋,讓其使用真實(shí)值來填寫,至于真實(shí)值如何來,后面會(huì)具體講。下載
第二個(gè)resource配置是不過濾src/main/resources目錄下除了context.xml的其他文件,也就不會(huì)用真實(shí)值來填寫${key}這樣的配置。
若是<include>和<exclude>都存在的話,那就發(fā)生沖突了,這時(shí)會(huì)以<exclude>為準(zhǔn)。
也許有人會(huì)有疑問,若只需要過濾context.xml的話,那就只需要配置第一個(gè)resource就可以了吧。其實(shí)不然,若是只配置第一個(gè)resource,第二個(gè)不配置,那么當(dāng)你運(yùn)行maven打包操作后,你就會(huì)發(fā)現(xiàn),在工程的classpath下只有context.xml文件了,其他配置文件都沒有打過來。所以第二個(gè)resource是必不可少的,指明其他配置文件是不需要過濾的,但是同樣需要打包到classpath下。下載
其實(shí)filtering為true的時(shí)候,這時(shí)只會(huì)把過濾的文件打到classpath下,filtering為false的時(shí)候,會(huì)把不需要過濾的文件打到classpath下。
還有一點(diǎn)需要說明,若<filtering>、<include>和<exclude>都不配置,就是把directory下的所有配置文件都放到classpath下,若這時(shí)如下配置下載
<resources>
<resource>
<directory>src/main/resources-dev</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
會(huì)以resources-dev下的相同文件為準(zhǔn),不一樣的文件取并集。其實(shí)這樣配合下面講的profiles也可以實(shí)現(xiàn)各種不同環(huán)境的自動(dòng)切換。
前面講到被過濾的文件會(huì)被真實(shí)值填寫文件中的${key}位置,那這些真實(shí)值來自哪里呢?
這些真實(shí)值其實(shí)都來自于profiles的配置里面,如下下載
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<config>pathConfig</config>
</properties>
</profile>
</profiles>
這段配置結(jié)合文章開頭的配置,就會(huì)把context.xml文件中的${config}在打包過程中替換成pathConfig,而其他配置文件不受任何影響,利用這種特性也可以實(shí)現(xiàn)各種不同環(huán)境的自動(dòng)切換,主要是在打包時(shí)指定使用哪個(gè)profile即可,命令如下:下載
man clean package -Pdev(利用id=dev的profile配置打包)
利用以上配置時(shí),若是配置信息比較多,可能導(dǎo)致<properties>需要配置很多項(xiàng),看起來不夠簡潔,這時(shí)可以利用profile的另外一個(gè)節(jié)點(diǎn)屬性filter,可以指定文件,并使用指定文件中的配置信息來填寫過濾文件的內(nèi)容。配置如下:下載
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>config-dev.properties</filter>
</filters>
</build>
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
</profile>
網(wǎng)站標(biāo)題:maven的resources介紹
鏈接分享:http://newbst.com/article6/jhsoig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、企業(yè)網(wǎng)站制作、軟件開發(fā)、外貿(mào)建站、網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)