標籤:
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> 所起的作用。 |
1、下載maven 官網下載最新版本 wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
2、tar -xzvf apache-maven-3.2.5-bin.tar.gz
3、安裝
3.1 編輯 /etc/profile
3.2 配置
配置 maven 安裝目錄
export MAVEN_HOME=/usr/local/maven/apache-maven-3.2.5 #maven 的解壓安裝目錄
export PATH=${MAVEN_HOME}/bin:/${PATH}
3.3 載入 生效
source/etc/profile #使配置生效
4、驗證
命令列輸入:mvn -v
顯示版本資訊 安裝成功
which: no javac in (/usr/local/maven/apache-maven-3.3.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
linux 下安裝maven