從我的少量經驗來看,我只使用Ant作爲構建工具。有沒有其他項目更好,爲什麼?Ant仍然是Java構建工具的最佳選擇?
回答
它比螞蟻要好得多,因爲對於大多數常見的任務,你不必編寫複雜的build.xml,Maven有非常好的默認值,這一切都約定優於配置。
它也有一個大型的圖書館中央資料庫,它很容易配置它,就像「使用最新的穩定的公共資源 - 不管」。然後,Maven將爲您下載最新的穩定版本(不再需要在VCS中檢查jar),如果發佈了新的上游穩定版本,它也會下載它。當然,如果你需要的話,將它鎖定到某個特定的版本也很容易。
它也很好地與Netbeans和Eclipse(m2eclipse插件)集成在一起,因此IDE會尊重您在pom.xml文件中聲明的任何設置(包括依賴關係)。
maven還有一些缺點:一些插件的文檔記錄很差,與IDE的集成並不完美,並且以不同的方式,某些錯誤消息可能難以理解。
我建議您在考慮合適的工具時從您的要求開始。每個項目都不同,你使用的工具應該反映問題空間而不是時尚。
這就是說,我認爲對於一般用途來說,ant仍然可能是構建java應用程序的最佳通用工具。它經常用於其他依賴管理工具的有效使用,但我們又一次避開了一個沒有問題的解決方案。
非常好的消息是,如果你的過程是很好的切換構建工具是一個相當無痛的過程 - 教訓 - 從一個好的過程開始,擴展到手頭的問題。
我真的很喜歡SCons,這是一個構建工具,其配置文件都只是Python腳本。這將吸引任何知道Python或類似腳本語言的人。 SCons旨在與Java以及C/C++和其他語言良好協作,過去我對此非常滿意。
因爲SCons文件是用Python編寫的,所以如果你發現自己需要做任何特殊的事情,你可以編寫任意的Python代碼。但是,如果你對Python完全不熟悉,那麼可能會有更高的學習曲線,而不是試圖擴展Ant或類似的東西來做你想做的事情。
Maven2似乎是未來的事情。
對於我們的項目,只要可行,我們都會回到螞蟻身邊。
Maven2需要相當多的知識才能完全按照你想要的方式得到它,而Maven2版本似乎以不同方式處理類路徑。
而且這是一個痛苦的檢查列入依賴關係的依賴關係的所有許可證可以在拿得出。
並可能有較慢的啓動時間,因爲你需要自己找出的依賴,但至少它很容易閱讀。沒有魔法在這裏:)
如果你確實使用maven,請考慮像Nexus這樣的內部存儲庫。這樣,如果一些圖書館決定退出網絡,你的軟件並沒有死亡。
*我們燒了maven1;在ibiblio上maven1庫重定向和maven1不支持重定向:(
你會發現已經有一些答案在What are some good java make utilities?。
螞蟻仍然是一個主要的球員。在我的經驗,這是主要的。此外,常春藤,它處理了Maven的一些優勢,IMO,Ant將成爲其他工具的框架:XML過於僵硬(見下面的鏈接)
Maven 2也是一個主要玩家,我知道那些非常喜歡它,批評對於Maven 1來說是真實的(它有很長的路要走)
Groovy提供了一些很酷的s在構建空間中凝結,因爲它們建立在Ant上。 Gant在Grails中使用,但可以歸入Gradle。這些也可以用於Java。
冒着對我自己的博客寫作的風險,here is a post關於Gant和Gradle。這裏是關於他們的未來的very current debate的鏈接。
在企業中,螞蟻依然是固定隊員。依賴關係不會快速改變。與持續轉向相對最新版本的依賴瓶子的開源項目不同,MOST企業不會過快地改變依賴關係。鑑於此,maven的優勢與螞蟻相比並不算太多。
然後再次,如果你想要一些maven的功能,螞蟻的人有常青藤(http://ant.apache.org/ivy/)的依賴關係功能。
如果您想繼續使用ant,請掌握第二版「ANT IN ACTION」,以便您可以使用ant達到最佳生產效率。
祝你好運,
您還有Gant。 Gant是Groovy + Ant,你可以用普通的groovy編寫你的任務,你也可以調用任何ant任務。如果你是一個Java商店,並且想重複使用你不熟悉的XML技術,我推薦Gant,它很容易設置,並且可以嵌入到ant中(也可以從ant中調用gant)。
- 1. 除了ant以外,什麼是最好的java構建工具?
- 2. Win32仍然是Windows遊戲開發的最佳選擇?
- 3. 從Java代碼構建一個exe的最佳免費工具?
- 4. 仍然使用java類的JSP腳本的最快選擇?
- 5. 請選擇CI構建工具
- 6. 選擇腳本/構建工具
- 7. npm vs Apache構建工具(maven,ant,groovy)
- 8. Android工具欄圖標丟失,但仍然可以選擇
- 9. ArgoUML仍然是流行的UML建模工具之一嗎?
- 10. WaitHandle是最佳選擇嗎?
- 11. 什麼是構建可視化工作流管理器的最佳工具
- 12. 最佳工具生成Java或jQuery的
- 13. Java EE驗證工具是否仍然存在?
- 14. .Net/C#構建工具 - 是否NAnt是首選工具?
- 15. 構建Java Swing GUI的最佳方法?
- 16. 學習Gradle構建工具的最佳資源
- 17. 構建網站的最佳選擇,如http://www.pageflakes.com/
- 18. 構建動態選擇的最佳技術
- 19. 哪些工具是在wpf中進行Datagrid搜索的最佳選擇?
- 20. 今天,線程Haskell調試的最佳選擇是什麼工具?
- 21. 將外部構建工具集成到Eclipse中的最佳方式是什麼?
- 22. 工藝流程 - 流程圖仍然是繪製它的最佳方法嗎?
- 23. Mark V. Shaney仍然是生成文本的最佳方式嗎?
- 24. WP 7.5 - LowProfileImageLoader仍然是Mango的最佳實踐嗎?
- 25. Iphone,定期更新數據是NSUserDefaults仍然是最簡單的選擇?
- 26. 什麼是DropCreateDatabaseIfModelChanges(MVC3)的最佳選擇?
- 27. PDE工具(創建Ant構建文件)不生成ant腳本(build.xml)
- 28. 最佳實踐 - 基於用戶選擇構建查詢
- 29. Html Graphs的最佳工具
- 30. Ajax的最佳工具包?
您是否認爲maven更像是一個項目定義,從而創建了build和ant,讓它處於低級別讓您自己去做?有點像,但不太極端,C對彙編語言? – dacracot 2008-10-11 22:33:38
可以這樣想,是的。但對我來說重要的是,Maven和IDE插件使得構建工具變得更好,就是這樣。 – 2008-10-12 22:01:13
如果您使用Maven,請考慮像Nexus存儲庫。這樣,您使用的所有罐子都被複制到內部網絡上的一個快速位置。 並將商業版本鎖定到某個版本,以便您可以重現您的可交付物:) – extraneon 2008-10-14 18:24:00