Apache Maven項目構(gòu)建工具
Maven 是一個流行的 Java 項目構(gòu)建系統(tǒng)。
目前,絕大多數(shù)開發(fā)人員都把 Ant 當作 Java 編程項目的標準構(gòu)建工具。遺憾的是,Ant 的項目管理工具(作為make的替代工具)不能滿足絕大多數(shù)開發(fā)人員的需要。通過檢查 Ant 構(gòu)建文件,很難發(fā)現(xiàn)項目的相關性信息和其它元信息(如開發(fā)人員/擁有者、版本或站點主頁)。
Maven 除了以程序構(gòu)建能力為特色之外,還提供 Ant 所缺少的高級項目管理工具。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡單的項目,而使用 Ant 則需要十幾行。事實上,由于 Maven 的面向項目的方法,許多 Apache Jakarta 項目現(xiàn)在使用 Maven,而且公司項目采用 Maven 的比例在持續(xù)增長。
Maven vs Ant
那么,Maven 和 Ant 有什么不同呢?在回答這個問題以前,我要強調(diào)一點:Maven 和 Ant 針對構(gòu)建問題的兩個不同方面。Ant 為 Java 技術開發(fā)項目提供跨平臺構(gòu)建任務。Maven 本身描述項目的高級方面,它從 Ant 借用了絕大多數(shù)構(gòu)建任務。因此,由于 Maven 和 Ant 代表兩個差異很大的工具,所以我將只說明這兩個工具的等同組件之間的區(qū)別,如表 1 所示。
表 1. Maven vs Ant
| Maven | Ant | |
| 標準構(gòu)建文件 | project.xml 和 maven.xml | build.xml |
| 特性處理順序 |
|
|
| 構(gòu)建規(guī)則 | 構(gòu)建規(guī)則更為動態(tài)(類似于編程語言);它們是基于 Jelly 的可執(zhí)行 XML。 | 構(gòu)建規(guī)則或多或少是靜態(tài)的,除非使用 |
相關開發(fā)環(huán)境下的Maven插件:http://mevenide.codehaus.org/
