Maven為我們提供了一致的項(xiàng)目目錄配置(源文件夾、資源文件夾等),在自動(dòng)構(gòu)建項(xiàng)目時(shí),Maven會(huì)按照這個(gè)配置來執(zhí)行操作(編譯源文件、拷貝資源文件)。
當(dāng)Maven規(guī)約的默認(rèn)配置不能夠滿足我們的需求時(shí),我們就要?jiǎng)邮中薷捻?xiàng)目的Maven配置,讓我們的項(xiàng)目能夠與Maven很好地協(xié)同工作。這里討論的需求有:
- 配置多個(gè)源文件夾來管理我們項(xiàng)目的模塊
- 配置多個(gè)資源文件夾來管理我們項(xiàng)目模塊的資源文件
- 有些遺留代碼的一些資源文件是放在源文件夾下的,為了不改變?cè)许?xiàng)目結(jié)構(gòu),我希望Maven能夠從源文件夾下讀取資源文件
- 我想將項(xiàng)目模塊的源文件和資源文件放置在同一個(gè)文件夾下,以方便開發(fā)與維護(hù)
1. 配置項(xiàng)目的pom文件(Maven配置文件)
1.1 Maven 默認(rèn)的源文件夾及資源文件夾配置
Maven默認(rèn)的源文件夾及資源文件夾的配置代碼如下:
- <build>
- ...
- < sourceDirectory > src/main/java </ sourceDirectory >
- < testSourceDirectory > src/test/java </ testSourceDirectory >
- < resources >
- < resource >
- < directory > src/main/resources </ directory >
- </ resource >
- </ resources >
- < testResources >
- < testResource >
- < directory > src/test/resources </ directory >
- </ testResource >
- </ testResources >
- ...
- </build>
在eclipse下,項(xiàng)目源文件夾及資源文件夾展現(xiàn)成這樣:
1.2 配置多個(gè)資源文件夾
從上面Maven的默認(rèn)配置來看,源文件夾和測(cè)試源文件夾都只能配置一個(gè),要配置多個(gè)源文件夾比較困難。這里我們先展示如何配置多個(gè)資源文件夾。
有人會(huì)認(rèn)為,在eclipse下將這些文件夾都設(shè)置為源文件夾不就OK了嗎?其實(shí)不然,Maven在構(gòu)建的時(shí)候并不會(huì)去讀取任何IDE的配置信息,所以他不會(huì)知道我們?cè)?/span>eclipse下指定的源文件夾,也不會(huì)將這些源文件夾下的代碼編譯打包。
配置多個(gè)資源文件夾的代碼:
- <build>
- ...
- < resources >
- < resource >
- < directory > src/main/resources </ directory >
- </ resource >
- < resource >
- < directory > src/labs/resources </ directory >
- </ resource >
- </ resources >
- ...
- </build>
配置好以后,IDE(eclipse)不會(huì)識(shí)別我們的配置,我們需要更新項(xiàng)目的配置:
更新后,在eclipse下項(xiàng)目源文件夾及資源文件夾展現(xiàn)成這樣(多了一個(gè)資源文件夾):
1.3 配置讀取源文件夾里的資源文件
為了讓Maven能夠從源文件夾下讀取資源文件(或?qū)⑺匈Y源文件配置到源文件夾下),我們可以這樣配置:
- <build>
- ...
- < resources >
- < resource >
- < directory > src/main/resources </ directory >
- </ resource >
- < resource >
- < directory > src/labs/resources </ directory >
- </ resource >
- < resource >
- < directory > src/main/java </ directory >
- < includes >
- < include > **/*.hbm.xml </ include >
- </ includes >
- </ resource >
- < resource >
- < directory > src/labs/java </ directory >
- < includes >
- < include > **/*.hbm.xml </ include >
- </ includes >
- </ resource >
- </ resources >
- ...
- </build>
這樣,不僅src/main/resources和src/labs/resources這兩個(gè)目錄下的文件會(huì)作為資源文件被打包,src/main/java和src/labs/java目錄下的所有.hbm.xml文件也都會(huì)作為資源文件被打包。否則,Maven構(gòu)建時(shí)不會(huì)打包這兩個(gè)目錄下的.hbm.xml文件,導(dǎo)致運(yùn)行時(shí)因?yàn)檎也坏劫Y源文件而拋異常。
1.4 配置多個(gè)源文件夾
前面講過,Maven默認(rèn)只支持一個(gè)源文件夾,為了給項(xiàng)目配置多個(gè)源文件夾,我們需要用到一個(gè)Maven插件,目的是在Maven構(gòu)建生命周期內(nèi)為項(xiàng)目添加源文件夾:
- <build>
- ...
- <plugins>
- ...
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <id>add-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${basedir}/src/labs/java</source>
-
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- ...
- </plugins>
- ...
- </build>
更新項(xiàng)目配置(操作同2.2)后,在eclipse下項(xiàng)目源文件夾及資源文件夾展現(xiàn)成這樣(多了一個(gè)源文件夾):
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。