標(biāo)準(zhǔn)目錄布局簡介
具有通用的目錄布局將使熟悉一個(gè)Maven項(xiàng)目的用戶立即在另一個(gè)Maven項(xiàng)目中感到賓至如歸。優(yōu)點(diǎn)類似于采用整個(gè)站點(diǎn)的外觀。
下一節(jié)記錄Maven期望的目錄布局和Maven創(chuàng)建的目錄布局。請(qǐng)嘗試盡可能符合此結(jié)構(gòu);但是,如果您不能通過項(xiàng)目描述符覆蓋這些設(shè)置。
src/main/java | 應(yīng)用程序/庫資源 |
src/main/resources | 應(yīng)用/圖書館資源 |
src/main/filters | 資源過濾器文件 |
src/main/webapp | Web應(yīng)用程序源 |
src/test/java | 測試來源 |
src/test/resources | 測試資源 |
src/test/filters | 測試資源過濾器文件 |
src/it | 集成測試(主要用于插件) |
src/assembly | 程序集描述符 |
src/site | 現(xiàn)場 |
LICENSE.txt | 項(xiàng)目許可證 |
NOTICE.txt | 項(xiàng)目所依賴的圖書館要求的注意事項(xiàng)和出處 |
README.txt | 項(xiàng)目的自述文件 |
在頂層,描述項(xiàng)目的pom.xml文件:文件。此外,還有意味著用戶文本文檔,以便能夠在接收該電源立即讀?。篟EADME.txt,LICENSE.txt,等。
該結(jié)構(gòu)只有兩個(gè)子目錄:src和target。唯一的其他將被預(yù)期這里目錄是元數(shù)據(jù)喜歡CVS,.git或.svn,和在多構(gòu)建任何子項(xiàng)目(其中的每一個(gè)將被布置為上文)。
該target目錄用于容納構(gòu)建的所有輸出。
該src目錄包含用于構(gòu)建項(xiàng)目的所有源材料,其站點(diǎn)等。它包含每種類型的子目錄:main用于主構(gòu)建工件,test用于單元測試代碼和資源,site等等。
在生成工件的源目錄(即main和test)中,有一種語言目錄java(在該目錄下,存在正常的包層次結(jié)構(gòu)),而有一個(gè)目錄(在resources給定默認(rèn)資源定義的情況下,該結(jié)構(gòu)復(fù)制到目標(biāo)類路徑中)。
如果有其他有助于工件構(gòu)建的源,它們將位于其他子目錄下:例如,src/main/antlr將包含Antlr語法定義文件。
Maven這個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具,越來越多的開發(fā)人員使用它來管理項(xiàng)目中的jar 包。但是對(duì)于我們程序員來說,我們最關(guān)心的是它的項(xiàng)目構(gòu)建功能。所以這里我們介紹的就是怎樣用 maven來滿足我們項(xiàng)目的日常需要。Maven 使用慣例優(yōu)于配置的原則 。它要求在沒有定制之前,所有的項(xiàng)目都有如下的結(jié)構(gòu)。
Maven 默認(rèn)約定了一套目錄結(jié)構(gòu),在通過 Maven 創(chuàng)建了項(xiàng)目以后,項(xiàng)目的目錄結(jié)構(gòu)就是以這套目錄結(jié)構(gòu)作為模板創(chuàng)建的。
目錄 |
目的 |
---|---|
${basedir} |
項(xiàng)目根目錄,存放 pom.xml 和所有子目錄 |
${basedir}/src/main/java |
存放項(xiàng)目的 java 源代碼 |
${basedir}/src/main/resources |
存放項(xiàng)目的資源配置文件 |
${basedir}/src/main/webapp |
如果是 web 項(xiàng)目,存放 web 資源 |
${basedir}/src/test/java |
存放測試類的源代碼 |
${basedir}/src/test/resources |
存放測試需要的資源配置文件 |
${basedir}/target |
存放生成的字節(jié)碼文件及打包生成文件等 |
參考案例:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html