2008-12-22 36 views

回答

5

雖然我喜歡Maven的想法,但我總是發現自己在爲最簡單的配置而戰。它的體系結構是基於插件的,插件的質量差別很大。文檔最好粗略;有一半時間我無法弄清楚我正在閱讀的文檔是用於Maven 1還是2.而且您多久不得不求助於使用maven-ant-plugin來做一些基本的工作?

我一直在使用Apache Ivy大約一年了,我對此很滿意。雖然有一點學習曲線。但是有一個活躍的郵件列表,作者非常敏感。

我最終做的工作是編寫一些簡單的Ant目標的「庫」,例如「解決」,「編譯」,「安裝」等,希望標準Maven位置的東西(如src/main/java )然後將<import>的目標轉化爲我的各種項目。通過這種方式,您可以獲得兩全其美的優勢 - Maven風格的配置以及Ant的所有功能。

4

我喜歡用螞蟻Ivy。常青藤使用Maven倉庫來獲取庫依賴關係,而不用強迫你改變你的整個構建系統以適應Maven。

3

我一直在爲我的一些項目使用buildr。非常簡潔和可讀的構建腳本(無xml),它使用maven回購(瑣碎的努力,maven 1和maven 2)。

我正在尋找post-maven1來處理一些項目,而m2並不是那麼有吸引力。 Maven已經將所有m1用戶留下了高和幹,並且需要重新構建他們的所有構建系統(並且據我所知,我的一些用戶不能以m2表示)。

+0

去的唯一途徑,XML(螞蟻)是不是我們想要做的任務配件。令人驚訝的是社區需要了解它多長時間。 – Denis 2012-09-26 21:03:36

0

如果我期待構建中的複雜構建目標,我會用buildr去。好處是,你不依賴任何特定的圖書館。你擁有Ruby的所有API來做你想做的任何事情;不像常青藤,在這種情況下,你仍然被綁在ANT上。向常春藤遷移的努力是值得的,如果你想介紹圖書館依賴於已經建立的基於ANT的構建機制,它可以完成你想做的所有操作。

0

Maven至少有三個不同的部分:存儲庫,實現獨立的生命週期和默認項目的約定。使用Ivy只提供存儲庫。

我沒有使用它,但我認爲easyant被設計成爲一個更完整的Maven替代品。它使用Ivy作爲存儲庫,但隨後添加了約定和標準模塊。

+0

我發現EasyAnt耐人尋味,但他們的文檔不是很好。它應該告訴它目標主要是Java,以及它如何與Java和Java中最大的當前選手Ant和Maven進行比較。 – Wernight 2011-11-23 09:45:35

1

我真的很喜歡使用ant4eclipse - 你在eclipse中設置你的項目依賴關係是正常的,你可以編寫一個單一的ant腳本來按照正確的順序構建所有的項目。

對於第三方庫,您可以設置一個包含(和導出)所有罐子[我不推薦這個]的Eclipse項目,或者爲每個第三方庫創建一個單獨的項目,導出罐。 [我推薦後者可以跟蹤項目 - >第三方代碼並在需要時升級部件。]

8

這取決於你使用什麼。 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

沒有理由不混搭,當你可以做到這一點;)

+0

(評論已添加,因此我可以記住這個答案)+1 – toolkit 2009-01-30 13:02:51