2010-01-27 24 views
1

我們正在計劃重組一個複雜的項目,其中包含許多模塊/部分,您可以稱之爲什麼。爲了轉向標準的目錄結構,我們希望採用maven文件結構。maven文件結構如何工作?

所以最大的問題是:任何人都可以提供對maven文件結構的描述,我們不需要通過所有的maven說話?

回答

5

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

src/main/java  Application/Library sources 
src/main/resources Application/Library resources 
src/main/filters Resource filter files 
src/main/assembly Assembly descriptors 
src/main/config  Configuration files 
src/main/webapp  Web application sources 
src/test/java  Test sources 
src/test/resources Test resources 
src/test/filters  Test resource filter files 
src/site   Site 
LICENSE.txt   Project's license 
README.txt  Project's readme 

順便說一句,我們確實對現有項目,移民。 使一切按預期工作是一項非常漫長而艱鉅的任務,但我們終於完成並對此感到滿意。


修訂

當你有很多的項目,你有相同的結構,每個項目

現在真正的問題開始時,你想分組他們。我們很難閱讀Maven文檔和最佳實踐,並決定什麼是適合我們的結構。

基本思想是將相關項目分組到一個公共目錄中(我們稱之爲模塊),允許將模塊作爲一個整體進行處理而不需要列出它們。但是如果你在一個IDE中打開模塊(在我們的例子中是Eclipse),這些項目本身屬於它,但不能作爲子項目打開(這個概念在Eclipse中不存在)。

我們結束了一個嚴格的等級制度,這使我們脫離許多行家的問題:

  • 實際編碼項目(Java項目)總是在我們的目錄樹的葉子。他們是我們在IDE中打開的唯一一個。它們是JAR類型或WAR。
  • 他們的父母/模塊總是POM類型。他們沒有Java代碼。
+0

當我有更多的一個Java模塊(例如util,framework,standardmodule,customer1,customer2 ...?)我會複製上面每個模塊的結構嗎? – 2010-01-27 09:47:45

+0

@Jens是,這是針對每個java項目的。 – KLE 2010-01-27 09:50:18

0

我一直在使用與Maven 2.2.1和現在使用Maven 3.0-alpha-6:POM模塊定義模塊結構的項目樹JAR/WAR模塊是樹的葉子。所有模塊具有相同的版本。

優點:

  • 您可以在模塊 層次上 具體水平 地方特性或依賴性,他們將被繼承 所有子模塊。
  • 您可以直接轉至 相應級別的樹和 運行「MVN安裝」打造 相關的模塊 - Maven會 制定出根據正確的構建順序 。
  • 各種Maven插件如 作爲發佈插件依賴於此 樹結構。
  • 最新的Maven Eclipse插件可以很好地處理這個 結構,並且將 代表該樹作爲一個扁平列表。 這個插件有一個實驗性功能,它確保 所謂的「陰影」工件僅出現一次,這有助於在Eclipse中搜索 資源。

缺點:

  • 擴展需要一些時間。例如,如果您決定JAR模塊需要子模塊,則需要將現有的JAR模塊轉換爲POM模塊,然後將其內容分發到新創建的JAR子模塊,因爲POM模塊本身不能包含任何代碼。
  • 所有的POM模塊將出現在Eclipse中,並且可能會減慢構建的速度。 Hoever,你可以關閉它們,而Eclipse將從存儲庫中獲取它們。