2009-02-06 70 views
5

的Maven 2使用的項目標準目錄佈局,這裏記載:Maven項目有哪些額外的目錄約定?

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

我想知道的是:有什麼可以推薦約定除純香草Java庫,Java EE和Web應用程序等項目項目?具體而言,在何處放置ant文件,啓動腳本,配置文件,示例應用程序等。

另外,將文件放置在src /目錄樹之外的約定是什麼?例如,將文檔放在doc /(作爲src的兄弟)時是否很常見?

是否有頁面在這些約定編譯?如果不是,其他讀者可以從自己的項目中提供示例嗎?

回答

1

我不認爲這是桌面應用程序的正式佈局,但是這是我們使用我們的佈局。

  • src/main/config - 配置文件,複製並過濾到$ {project.build.directory}/config。
  • src/main/scripts - sh,bat,README和複製並過濾到$ {project.build.directory}的其他純文本文件。
  • src/main/bin - 將而不是的二進制文件過濾並複製到$ {project.build.directory}。
  • src/main/build - 構建過程使用但未包含在應用程序中的任何其他腳本,ant文件或資源。
  • src/main/assembly - 用於創建應用程序程序集的程序集描述符。
  • 使用maven-dependency插件將依賴項複製到$ {project.build.directory}/lib。
  • 如果您使用包含config和lib目錄以及標準文件類型的共享程序集描述符jar與所有項目共享,則可獲得獎勵積分。要包含的一組很好的默認文件類型是帶有可執行權限的.sh,.bat和.exe。 .jar,.zip,.txt,.pdf,.xml,.properties,.conf,.ico,.png,.jpg和標準權限。
  • 使用maven-jar插件將配置目錄和lib /前綴添加到類路徑中以生成可運行jar。
  • 添加一個安裝程序配置文件,該配置文件使用maven-assembly插件和您的裝配描述符構建應用程序的裝配。如果需要,此組件可以由單獨的安裝程序項目使用。
  • 避免在src /等級放置其他任何東西。如果你真的需要的話,把文檔放在src/site /目錄(例如.src/site/sphinx)或src/doc中。
  • 將上述所有配置放在父/公司pom中,以便與您的所有項目共享。只需引用項目中的maven-dependency,maven-resources,maven-jar和maven-assembly插件即可構建幾乎沒有配置的整個應用程序(不要忘記爲maven-jar插件設置主類) 。
2

我放置額外的配置文件的主文件夾在src/main/java/resources下。通常我在那裏創建子目錄。測試可以有自己的配置文件src/test/resources。

您可以使用pom.xml的構建部分中的指令來指定其他資源目錄以及將文件複製到目標目錄中特定位置的位置。通常會出現您正在嘗試使用的語言或框架的慣例。在這種情況下,可以亂在父pom.xml中被隱藏

http://maven.apache.org/pom.html#Resources

+4

請記住,這些資源目錄通常會被maven震驚。這可能不是用戶可配置屬性文件或啓動腳本的期望行爲。 – Kevin 2009-02-08 00:40:30

相關問題