2015-01-13 34 views
7

我有一個多項目生成與幾個子項目,我想使用gradle包裝。使用Gradle包裝器(./gradlew.sh)與子項目

這樣做的慣用方法是什麼?

我應該在根中將build.gradle添加到每個子項目中來配置包裝器嗎?

allprojects { 
    task wrapper(type: Wrapper) { 
     gradleVersion = '2.2' 
    } 
} 

但後來,我檢查所有的gradlew.batgradlew.shgradle/wrapper/gradle-wrapper.jar等從所有子項目目錄到版本控制文件?這似乎效率低下,但如果我不這樣做,那麼我怎麼能在子項目目錄中執行./gradlew.sh?在子項目中使用gradle wrapper的首選方式是什麼?

開發者是否只是使用安裝在文件系統上的gradle來處理這種情況?

最重要的問題是第一個問題:這樣做的慣用方法是什麼?

回答

7

您應該只將外包任務放在所有項目塊之外,因此在項目結構的頂層只有一個gradlew.bat,gradlew.shgradle/wrapper/gradle-wrapper.jar

可以運行./gradlew tasks --all驗證包裝可以看到子項目任務

或者你可以運行./gradlew <subproject_name>:tasks命令查看只有一個子項目的任務。

+1

要清楚的是這是做到這一點的慣用方式?是否有一個習慣性的解決方案來解決在子項目目錄中使用包裝器運行任務的問題? – Jason

+0

要調用從子項目目錄中打包,運行../gradlew 我會推遲給別人說這是否是慣用的方式。至少是我這樣做的方式。 – jeffl8n

+7

這是正確的方法。另外,你可以在你的'PATH'上放置第三方'gradle(w)'腳本,例如https://github.com/cbeams/dotfiles/blob/home/bin/gradle,它將搜索「真實」父目錄中的gradlew'腳本。然後你可以寫'gradlew'而不是'。gradlew'或'../ gradlew'。 –

相關問題