作爲Maven Java構建工具集的替代者,您會有什麼建議?只是簡單的Ant腳本? SCons的?Maven替換?
Maven替換?
回答
雖然我喜歡Maven的想法,但我總是發現自己在爲最簡單的配置而戰。它的體系結構是基於插件的,插件的質量差別很大。文檔最好粗略;有一半時間我無法弄清楚我正在閱讀的文檔是用於Maven 1還是2.而且您多久不得不求助於使用maven-ant-plugin
來做一些基本的工作?
我一直在使用Apache Ivy大約一年了,我對此很滿意。雖然有一點學習曲線。但是有一個活躍的郵件列表,作者非常敏感。
我最終做的工作是編寫一些簡單的Ant目標的「庫」,例如「解決」,「編譯」,「安裝」等,希望標準Maven位置的東西(如src/main/java
)然後將<import>
的目標轉化爲我的各種項目。通過這種方式,您可以獲得兩全其美的優勢 - Maven風格的配置以及Ant的所有功能。
我喜歡用螞蟻Ivy。常青藤使用Maven倉庫來獲取庫依賴關係,而不用強迫你改變你的整個構建系統以適應Maven。
我一直在爲我的一些項目使用buildr。非常簡潔和可讀的構建腳本(無xml),它使用maven回購(瑣碎的努力,maven 1和maven 2)。
我正在尋找post-maven1來處理一些項目,而m2並不是那麼有吸引力。 Maven已經將所有m1用戶留下了高和幹,並且需要重新構建他們的所有構建系統(並且據我所知,我的一些用戶不能以m2表示)。
如果我期待構建中的複雜構建目標,我會用buildr去。好處是,你不依賴任何特定的圖書館。你擁有Ruby的所有API來做你想做的任何事情;不像常青藤,在這種情況下,你仍然被綁在ANT上。向常春藤遷移的努力是值得的,如果你想介紹圖書館依賴於已經建立的基於ANT的構建機制,它可以完成你想做的所有操作。
我真的很喜歡使用ant4eclipse - 你在eclipse中設置你的項目依賴關係是正常的,你可以編寫一個單一的ant腳本來按照正確的順序構建所有的項目。
對於第三方庫,您可以設置一個包含(和導出)所有罐子[我不推薦這個]的Eclipse項目,或者爲每個第三方庫創建一個單獨的項目,導出罐。 [我推薦後者可以跟蹤項目 - >第三方代碼並在需要時升級部件。]
這取決於你使用什麼。 Maven 1? Maven 2?我發現Maven 2體面記錄,並且與Ant任務和一些家庭版Java插件結合使用時功能非常強大。
有Ant任務使用Ant的Maven特性:http://maven.apache.org/ant-tasks/index.html。所以你並不需要寫自己的「圖書館」。
而且你可以從Maven調用Ant:http://maven.apache.org/plugins/maven-antrun-plugin/。
您還可以使用Groovy編寫腳本,例如:http://groovy.codehaus.org/GMaven+-+Executing+Groovy+Code。
或者只是編寫您需要的自定義位的Java代碼:http://maven.apache.org/guides/plugin/guide-java-plugin-development.html。
沒有理由不混搭,當你可以做到這一點;)
(評論已添加,因此我可以記住這個答案)+1 – toolkit 2009-01-30 13:02:51
- 1. Maven 2 Weblogic.xml替換
- 2. 條件替換maven
- 3. Maven - 用jar替換文件
- 4. maven原型屬性替換
- 5. Maven:屬性不被替換
- 6. 財產上的Maven不會被替換
- 7. Gradle替換Maven程序集插件
- 8. 未替換屬性的maven原型
- 9. 替換Maven 3中的plexus組件3
- 10. 替換Maven Antrun插件中的任務
- 11. GWT Maven插件替換的web.xml
- 12. maven -SNAPSHOT關鍵字不被替換
- 13. 貨物Maven插件令牌替換
- 14. Maven 2:使用條件替換值運行maven-replacer-plugin?
- 15. 在替換Maven屬性時修改Maven屬性的值
- 16. Maven替代品:包含美元符號的替換值
- 17. 使用Google Maven替換器替換WAR文件中的web.xml中的令牌
- 18. 我如何擺脫..替換(替換(替換(替換(替換(...?
- 19. 爲什麼maven不會替換maven-release-plugin發佈版本的環境變量?
- 20. 編寫Maven插件:如何在讀取輸入文件時替換Maven屬性?
- 21. 替換/替換記事本
- 22. ajax.actionlink替換vs替換
- 23. Javascript替換不會替換
- 24. 替換Vim中的替換
- 25. 替換替換更新
- 26. sed替換與python替換
- 27. 替代替換
- 28. Maven - 替代.m2目錄
- 29. Maven發佈過程替代
- 30. Maven Archetypes的替代品
去的唯一途徑,XML(螞蟻)是不是我們想要做的任務配件。令人驚訝的是社區需要了解它多長時間。 – Denis 2012-09-26 21:03:36