淺談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的好了
相關文章
相關標籤/搜索