天天看點

淺談java建構工具的選擇

在學校的時候還總是自己用eclipse自帶的jar導出工具,然後人工來給項目打包,那是相當的原始。

而後工作了,項目中都是用ant,慢慢的開始學會使用這個工具。感覺就和腳本一樣,很容易讀懂,做項目建構還是不錯的。

最近開一些開源的項目,基本都沒有使用ant的了,以maven2居多,也有ivy和其他的。看來項目建構工具是發展了,有了更多的新東西出來,那到底哪個好一點呢?最近查了點資料,橫向比較一下吧。

我初步調查了一下Maven, Ivy, Gradle, sbt這4個工具

Maven2:

當今最為流行的建構工具,提供了項目建構、測試、釋出等一整套流程的管理。當年非常有預見性的提供了一套包依賴的解決方案,但是這個方案設計不夠好,也一直被人們诟病。提供了比較強的規約,有人認為這很不自由,但是我覺得這樣的規範更好,特别是目錄結構有個統一标準,這樣非常清晰。但是他的配置檔案寫起來确實有點麻煩,特别是一個ant工程要轉過來,真的要花不少工夫。

Ivy:

Apache提供的一個ant的子項目,和ant完全相容,用起來倒是友善了。提供了一套更合理的包依賴解決方案,還可以直接使用Maven的包依賴庫,真是充分利用已有資源啊,難道這樣不侵權?其他方面都是一些對ant的簡單擴充,其實并沒有太多新的特性。

Gradle:

用了Grails感覺他的配置還是很清爽的,其調用的就是Gradle。最大的特點就是用Groovy腳本來代替了XML,同時也處理了包依賴問題。但用的人貌似不是很多,屬于潛力股。

sbt:

全稱是simple build tool,是在Ivy基礎上進行的封裝,引入了Maven的目錄結構,具體配置又是直接使用Scala,算是各種的綜合體。在Scala項目中使用應該還是不錯的,可惜目前的版本隻支援Scala2.7.7,而且看了下demo感覺配置起來也有點麻煩。

看來看去,感覺其實隻使用ant也沒有什麼特别大的問題。如果非要用替換,使用Ivy感覺風險最小,項目組接受程度會高點。現在項目的ant腳本已經寫好了,等有空引入Ivy吧~,目錄結構還是用Maven的好了

本文轉自passover 51CTO部落格,原文連結:http://blog.51cto.com/passover/425910,如需轉載請自行聯系原作者

繼續閱讀