什么是Maven?


什么是Maven?

介紹

Maven一個意第緒語單詞,意思是知識的累加器,最初是為了簡化Jakarta Turbine項目中的構建過程而開始的。這個工程有幾個項目組成,並且每個項目都有自己的Ant構建文件,這些文件都略有不同,當時JAR都是通過簽入CVS進行管理。我們需要一種標准的方法來構建項目,明確定義項目的內容,發布項目信息的簡便方法以及跨多個項目共享JAR的方法。

為了這個目錄我們開發了一個工具,就是現在可用於構建和管理任何基於Java的項目工具Maven。我們希望我們已經創建了一些東西(Maven),使Java開發人員的日常工作變得更加容易,並且通常有助於理解任何基於Java的項目。

Maven的目標

Maven的主要目標是讓開發人員在最短的時間內理解開發工作的完整狀態。為了實現這一目標,Maven試圖處理以下幾個方面的問題:

  • 使構建過程變得簡單
  • 提供統一的構建系統
  • 提供優質的項目信息
  • 提供最佳實踐開發指南
  • 允許透明遷移到新功能

使構建過程變得簡單

雖然使用Maven並不能消除對底層機制的了解,但Maven確實提供了很多屏蔽細節來確保使用過程變得簡單

提供統一的構建系統

Maven允許項目使用其項目對象模型(POM)和一組使用Maven由所有項目共享的插件進行構建,從而提供統一的構建系統。一旦您熟悉了Maven項目的構建方式,您就會自動了解所有Maven項目的構建方式,從而在嘗試許多項目中應用它,它給我們工作節省了大量時間。

提供優質的項目信息

Maven提供了大量有用的項目信息,這些信息部分來自您的POM,部分來自您項目的來源。例如,Maven可以提供:

  • 更改直接從源代碼管理創建的日志文檔
  • 交叉引用的來源
  • 郵件列表
  • 依賴列表
  • 單元測試報告包括報道

隨着Maven的改進,所提供的信息集將得到改善,所有這些對Maven的用戶都是透明的。

其他產品也可以提供Maven插件,以允許他們的項目信息以及Maven提供的一些標准信息,所有這些仍然基於POM。

提供最佳實踐開發指南

Maven旨在收集最佳項目實踐開發原則,並使指導項目朝這個方向變得容易。

例如,單元測試的規范,執行和報告是使用Maven的正常構建周期的一部分。目前的單元測試最佳實踐被用作指南:

  • 將測試源代碼保存在單獨但並行的源代碼樹中
  • 使用測試用例命名約定來定位和執行測試
  • 讓測試用例設置他們的環境,而不是依賴於自定義構建以進行測試准備。

Maven還旨在協助項目工作流程,例如發布和問題管理。

Maven還建議了一些關於如何布局項目目錄結構的指南,這樣一旦你學習了布局,你就可以輕松地應用到任何其他使用Maven的項目和相同的默認值。

允許透明遷移到新功能

Maven為Maven客戶端提供了一種簡單的方法來更新他們的安裝,以便他們可以利用對Maven本身所做的任何更改。

出於這個原因,從第三方或Maven本身安裝新的或更新的插件已經變得微不足道了。

什么是Maven?

您可能聽說過Maven的以下一些事情:

  • Maven是一個站點和文檔工具
  • Maven擴展了Ant以允許您下載依賴項
  • Maven是一組可重用的Ant scriptlet

雖然Maven做了這些事情,正如你在上面的“什么是Maven?”一節中所讀到的,這些並不是Maven所擁有的唯一功能,它的目標是完全不同的。

Maven確實鼓勵最佳實踐,但我們意識到由於歷史原因,某些項目可能不符合這些理想。雖然Maven的設計靈活,在某種程度上,在這些情況下和不同項目的需求,但它不能滿足每一種情況,而不會妥協其目標的完整性。

如果你決定使用Maven,並且有一個不可重組的不尋常的構建結構,你可能不得不忘記一些功能或完全使用Maven。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM