maven與ant比較

淺談maven與ant web

原文連接:http://yinwufeng.iteye.com/blog/752406服務器

  在講爲何使用maven以前我想說一下,antx,不少人知道ant,其實antx是阿里的牛人本身搞的一套基於ant擴展的在某些方面相似於mavnen的工具,咱們甚至有eclipse的antx插件,可想而知antx在阿里的項目管理中的重要地位。它有不少優秀之處:eclipse

1. 能夠比較好的支持第二方庫maven

2. 支持項目之間的依賴和繼承工具

3. antx能夠用jelly來寫插件單元測試

4. car包的支持,這裏簡單介紹下car包:測試

car是war包的一種中間格式,在打包的時候包含vm頁面,webx.xml,classes等資源,可是沒有包含
WEB-INF/lib,一個war包能包含多個car 包,在war包打包的時候,可以把web工程依賴的car中的jar
包,包括傳遞依賴的jar包,一塊兒合併到WEB-INF/lib下spa

5. auto config: auto-config.xml配置項目中須要被替換的資源插件

那咱們爲何還須要引入maven呢?代理

先說一下Antx在存在哪些問題:

1. Antx第三方庫的管理比較複雜,若是某個項目須要一個新的jar包或者新版本的jar包,則須要走一個嚴格申請流程,而且須要本身提交相關的jar包

2. Antx對jar包的版本控制,changelist等沒有工具上的支持,致使不少項目都是1.0-SNAPSHOT從頭用到尾,致使包版本比較很差控制。

3. Antx對SCM打包部署的支持不是很強。

4. Antx在於IDE的兼容性上存在問題,爲了讓eclipse支持antx,咱們須要單獨寫一個antx插件來讓eclipse支持antx,對於其餘的一些比較好的IDE好比Intellij IDEA,是不支持antx的。

5. 如今IDE不少都有一鍵式DEBUG的功能,包括集成對應用服務器的支持,antx在這方面存在不足。

Maven能解決這些問題麼,還有更好的優點麼, 答案是YES

1. Maven的庫是由開源組織維護,不須要咱們再花精力去管第三方庫,即便本身維護,也比較方便。

2. Maven對jar包的版本管理有工具上的支持,好比將Release版本和Snapshot版本區分開,有利於SCM管理。

3. Maven是標準,用過的人多,不須要額外培訓。

4. Maven的plugin比較多,能夠有更多功能,Maven現有體系比較開放,採用的技術相對比較通用和成熟,plugin的機制也能夠便於咱們擴展更多功能。

5. Maven的庫下載是即用即下,不須要實現所有down下來。Maven的插件也是自動升級,能夠方便的
咱們擴展新功能。

6. 能夠很方便的與eclipse, IDEA這樣的主流的IDE集成

7. 倉庫管理器:它的出現有兩個目的:首先它的角色是一個高度可配置的介於你的組織與公開Maven倉庫之間的代理,其次它爲你的組織提供了一個可部署你組織內部生成的構件(第二方庫)的地方。

8. 版本管理功能,這裏的版本管理不是指第三方庫的版本管理,而是項目的版本管理

9. 站點功能:它的出現讓咱們能夠對項目的狀態一目瞭然,能夠自動的把項目的狀態和各類報表以站點的形式發佈到內部網或者外部網,能夠隨時隨地查看項目狀態。 有不少中報表能夠選擇,包括,doc生成,代碼規範的檢查,自動bug檢查,單元測試報表,單元測試的代碼覆蓋率報表

相關文章
相關標籤/搜索