簡體   English   中英

Maven2的新項目

[英]New project with Maven2

對於將來可能會變大的項目,使用Maven的推薦方法是什么? 我使用Eclipse,並且看到了不同的方法。 有些使用一個沒有子模塊的項目,而有些像Like mahout,則針對不同的模塊(例如核心,數學,示例等)具有不同的子項目。 您可以在以下鏈接中看到它: http : //svn.apache.org/repos/asf/mahout/trunk/

有一個優勢勝於另一優勢?

謝謝。

將項目分為模塊的決定應由您設計和維護應用程序的方式決定。 無論您是選擇創建一個多模塊項目,還是將所有內容集中在一個模塊中,Maven本身都能很好地工作。 因此,問題就變成了,將您的應用程序拆分為多個模塊的優點/缺點是什么?

拆分應用程序的某些驅動程序純粹是技術性的:

  • 生成單獨的客戶端和服務器工件
  • 生成命令行版本和Web應用程序版本
  • 模塊依賴關系

在其他情況下,更多與設計相關的問題將促使您拆分應用程序。 如果您關注的是會隨着時間增長的應用程序,那么這尤其重要。 在這些情況下,您希望將應用程序划分為特定的關注區域,並定義了模塊交互所通過的服務邊界。 這樣,您就可以隨着時間的推移發展各個模塊,同時最大程度地減少對應用程序其余部分的影響。

請注意,由於maven提供了對依賴項管理和解析的支持,因此maven特別適合大型多模塊項目。

模塊實際上是Maven的核心概念(並得到很好的支持),而模塊化構建的明顯優勢是……模塊化。

優點:

  • 可以更好地分離關注點。
  • 促進,實施代碼的模塊化設計。
  • 使您可以更精細地控制對每個零件的“應用”。
  • 允許在與其他部分隔離的情況下處理代碼的子部分。
    • 使用二進制依賴項可加快編譯速度(與編譯整個整體項目相比)。
  • 允許用戶僅依賴應用程序的子部分。

缺點:

  • 如果不需要,多個模塊將比整體項目引起更多的維護。

因此,Maven支持並促進模塊化構建,這是設計的一部分。 在某些情況下,實際上甚至沒有選擇的余地,因為每個模塊都有一個(主要的)工件黃金法則:如果您想將應用程序作為不同的部分分發,或者組裝一個應用程序的多個部分(例如,客戶端JAR和服務器JAR,WAR中的JAR或EAR中的某些EJB-JAR和WAR), 必須為其創建專用模塊(Maven無法從同一模塊生成WAR EAR)。

綜上所述,構建的模塊化在某種程度上受應用程序性質的驅動,這可能只是必需的。 但是,如果您的應用程序本質上不是模塊化的(例如您開發了一個swing客戶),則可以使用單個模塊。 當事情變得過於復雜,太大時,可以根據需要對其進行划分。

建議使用模塊,因為通常在大型項目中,您在由Maven處理的模塊之間有關聯。 另一方面,相關的部分是相互關聯的,因此構建反應堆是一個好方法,Maven的發布系統當然會為您提供許多支持項目的功能(分支等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM