Maven, 是基於項目對象模型(Project Object Model, POM),通過一小段描述信息來管理項目的構建,報告,文檔的軟件項目管理工具。
目前,絕大多數開發人員都把 Ant 當作 Java 編程項目的標准構建工具。但是,Ant 的項目管理工具(作為 make的替代工具)不能滿足絕大多數開發人員的需要。通過檢查 Ant 構建文件,很難發現項目的相關性信息和其它元信息(如開發人員/擁有者、版本或站點主頁)。
Maven 除了以程序構建能力為特色之外,還提供 Ant 所缺少的高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目,而使用 Ant 則需要十幾行。事實上,由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目現在使用 Maven,而且公司項目采用 Maven 的比例在持續增長。
Maven這個單詞來自於意第緒語,意為知識的積累,最早在Jakata Turbine項目中它開始被用來試圖簡化構建過程。當時有很多項目,它們的Ant build文件僅有細微的差別,而JAR文件都由CVS來維護。於是Maven創始者開始了Maven這個項目,該項目的清晰定義包括,一種很方便的發布項目信息的方式,以及一種在多個項目中共享JAR的方式。
Maven 和 Ant 有什麼不同呢?
Ant 為 Java 技術開發項目提供跨平台構建任務
Maven 本身描述項目的高級方面,它從 Ant 借用了絕大多數構建任務
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 命令行選項定義的系統特性
由 <property> 任務裝入的特性
第一個定義最先被處理。
構建規則
構建規則更為動態(類似於編程語言);它們是基於 Jelly 的可執行 XML。
構建規則或多或少是靜態的,除非使用 <script> 任務。
擴展語言
插件是用 Jelly(XML)編寫的。
插件是用 Java 語言編寫的。
構建規則可擴展性
通過定義 <preGoal> 和 <postGoal> 使構建 goal 可擴展。
構建規則不易擴展;可通過使用 <script> 任務模擬 <preGoal> 和 <postGoal> 所起的作用。
由上比較可知,Maven 和 Ant 代表兩個差異很大的工具
1, 下載
官方下載地址: maven_download, 最新版 apache-maven-3.0.5-bin.tar.gz
官方地址: maven
2, 解壓
tar zxvf apache-maven-3.0.5-bin.tar.gz (例如安裝目錄為: /home/homer/Apache-maven/apache-maven-3.0.5)
3, 安裝
1) 編輯 /etc/profile
sudo vi /etc/profile
2) 配置
配置maven安裝目錄:
export MAVEN_HOME=/home/homer/Apache-maven/apache-maven-3.0.5 // 安裝目錄
export PATH=${MAVEN_HOME}/bin:${PATH}
如下圖:
3) 生效
source /etc/profile // 使上面配置生效
4, 驗證
命令行輸入: mvn -v
如上圖, 顯示maven版本信息,表示安裝成功!
參考推薦:
maven(官方)
ant(官方)
Maven 的詳細介紹:請點這裡
Maven 的下載地址:請點這裡