我一直在尋找Gradle,看起來很有趣。我認爲能夠使用除XML之外的其他語言編寫腳本非常酷,並且我不清楚polyglot Maven POM文件是否仍然是可行的選項。從Maven 2/3遷移到Gradle
我正在使用Maven 2.2.1作爲構建工具的項目。這個項目:
- 是多模塊
- 用途(也是我們自己)的插件
- 依賴於Artifactory的代理庫
是否有任何的經驗在那裏從Maven來搖籃遷移?陷阱,痛點,角落案件?任何經驗都是非常受歡迎的。
我一直在尋找Gradle,看起來很有趣。我認爲能夠使用除XML之外的其他語言編寫腳本非常酷,並且我不清楚polyglot Maven POM文件是否仍然是可行的選項。從Maven 2/3遷移到Gradle
我正在使用Maven 2.2.1作爲構建工具的項目。這個項目:
是否有任何的經驗在那裏從Maven來搖籃遷移?陷阱,痛點,角落案件?任何經驗都是非常受歡迎的。
從Maven到Gradle的遷移並不像從Ant到Maven那麼容易(至少目前是這樣)。你可以很容易地reuse Ant scripts,並讓他們在您的Gradle構建中成爲一等公民。 deep import of Maven builds也有Gradle roadmap的任務。
到目前爲止,我將兩個企業Maven構建遷移到了Gradle。他們都是使用標準Maven插件的多模塊項目。我基本上重寫了構建Gradle的方式,至少需要一些關於Gradle的知識。根據我的經驗,您可以輕鬆獲得在Gradle中運行的相同構建。 Gradle並沒有真正把你放在這裏,而且相當靈活。一路上,您可能會發現自己必須編寫一個不存在的自定義插件,具體取決於您使用的Maven插件。但是,那裏已經有wide breath of plugins了。到目前爲止,我還沒有碰到真正的障礙。即使Gradle文檔相當不錯,您可能會發現自己正在閱讀大量的Gradle論壇帖子,以找到解決其中一個問題的解決方案。部分標準Maven功能不支持開箱即用provided
範圍或WAR inplace。但是,它有簡單的方法。我沒有使用Artifactory存儲庫。我處理的是Nexus存儲庫。據我所知,Gradle傢伙雖然對Artifactory有很好的支持。 編輯: JFrog提供了一個Artifactory Gradle plugin。
開始的一個好方法是使用遷移工具Maven2Gradle,讓您從Maven構建生成Gradle腳本。就我個人而言,我還沒有使用它。我開發了與Maven構建並行的Gradle構建,這沒有造成任何麻煩。 Maven把它的 輸出放在target
下,Gradle在build
下。確保你爲變革做好準備。讓他們嘗試Gradle構建並熟悉該工具。
完全遷移後,您會對構建的可維護性和可擴展性感到非常高興。添加定製構建邏輯非常簡單,您將非常感激您離開XML-land。在表現方面,你也不會退後一步。增量構建功能很好地完成了它的工作。
您可以隨時更改buildDir
是'target'
下gradle這個,如果你想生成輸出到'target'
,而不是'build'
去下像行家:
buildDir = 'target'
maven2Gradle似乎已經被替換爲能夠運行gradle init
從命令行(儘管這是一個相當實驗性的功能)。它似乎可以從Maven項目中進行一些基本的Gradle設置。
在目錄中,你有pom.xml中只需運行下面的命令:
gradle這個初始化--type POM
這應該轉換的Maven的pom.xml到的build.gradle
的搖籃war插件(即在Gradle 1.0-milestone-6中)支持兩種額外的配置:compileProvided和runtimeProvided。 –
不幸的是,如果你的項目沒有應用WAR插件,這不會對你有所幫助。你仍然必須定義你自己的「提供」配置。這仍然是Gradle社區的討論內容,例如看到這個[JIRA門票](http://issues.gradle.org/browse/GRADLE-784)。 –