Maven教程
Maven常用命令應用
Maven修改倉庫地址
使用Eclipse創建Maven項目
Maven插件
Maven打包
Maven項目導入及轉換

Maven教程

Maven 是 Apache 的一個頂級的項目:http://maven.apache.org/

Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。

Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由于 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由于 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目采用 Maven 的比例在持續增長。

Maven這個單詞來自于意第緒語(猶太語),意為知識的積累,最初在Jakata Turbine項目中用來簡化構建過程。當時有一些項目(有各自Ant build文件),僅有細微的差別,而JAR文件都由CVS來維護。于是希望有一種標準化的方式構建項目,一個清晰的方式定義項目的組成,一個容易的方式發布項目的信息,以及一種簡單的方式在多個項目中共享JARs。

Maven歷史

Maven最初設計,是以簡化Jakarta Turbine項目的建設。在幾個項目,每個項目包含了不同的Ant構建文件。 JAR檢查到CVS。

Apache組織開發Maven可以建立多個項目,發布項目信息,項目部署,在幾個項目中JAR文件提供團隊合作和幫助。

Maven目標

Maven主要目標是提供給開發人員:

? 項目是可重復使用,易維護,更容易理解的一個綜合模型。

? 插件或交互的工具,這種聲明性的模式。

Maven項目的結構和內容在一個XML文件中聲明,pom.xml 項目對象模型(POM),這是整個Maven系統的基本單元。     

Maven特點

那么,Maven 和 Ant 有什么不同呢?在回答這個問題以前,首先要強調一點:Maven 和 Ant 針對構建問題的兩個不同方面。Ant 為 Java 技術開發項目提供跨平臺構建任務。Maven 本身描述項目的高級方面,它從 Ant 借用了絕大多數構建任務。因此,由于 Maven 和 Ant代表兩個差異很大的工具。所以接下來只說明這兩個工具的等同組件之間的區別,如表 1 所示。

  Maven Ant
標準構建文件 project.xml 和 maven.xml build.xml
特性處理順序 ${maven.home}/bin/driver.properties
${project.home}/project.properties
${project.home}/build.properties
${user.home}/build.properties
通過 -D 命令行選項定義的系統特性
最后一個定義起決定作用。
通過 -D 命令行選項定義的系統特性
由任務裝入的特性
第一個定義最先被處理。
構建規則 構建規則更為動態(類似于編程語言);它們是基于 Jelly 的可執行 XML。 構建規則或多或少是靜態的,除非使用<script>任務
擴展語言 插件是用 Jelly(XML)編寫的。 插件是用Java 語言編寫的。
構建規則可擴展性 通過定義 <preGoal> 和 <postGoal> 使構建 goal 可擴展。 構建規則不易擴展;可通過使用 <script> 任務模擬 <preGoal> 和 <postGoal> 所起的作用。

Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

Maven 有一個生命周期,當你運行 mvn install 的時候被調用。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命周期。遍歷生命周期旅途中的一個影響就是,Maven 運行了許多默認的插件目標,這些目標完成了像編譯和創建一個 JAR 文件這樣的工作。

此外,Maven能夠很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。

Maven在Java項目開發中的應用

⒈ 項目構建

什么是構建工具?

構建工具是將軟件項目構建相關的過程自動化的工具。構建一個軟件項目通常包含以下一個或多個過程:

生成源碼(如果項目使用自動生成源碼);

① 從源碼生成項目文檔;

② 編譯源碼;

③ 將編譯后的代碼打包成 JAR 文件或者 ZIP 文件;

④ 將打包好的代碼安裝到服務器、倉庫或者其它的地方;

有些項目可能需要更多的過程才能完成構建,這些過程一般也可以整合到構建工具中,因此它們也可以實現自動化。

自動化構建過程的好處是將手動構建過程中犯錯的風險降到最低。而且,自動構建工具通常要比手動執行同樣的構建過程要快。

⒉ 文檔管理

⒊ 生成測試報告

⒋ 解決項目間依賴項

⒌ 源代碼版本管理及自動關聯

⒍ 項目 Releases

⒎ 輔助測試

⒏  jar 包自動下載

⒐ 強制性精確的 jar 包管理

⒑ 項目的分發

全部教程