[英]gradle run task on external project
假設我有兩個獨立的項目:
./
|
+- projectA
| |
| + build.gradle
| + settings.gradle
| + gradlew
| + .gradle/
| + gradle/
| + submodulea/
|
+- projectB
|
+ build.gradle
+ settings.gradle
+ gradlew
+ .gradle/
+ gradle/
+ submoduleb/
我理了理執行某些任務:projectB:submoduleb
從的buildscript :submoduleA
。 例如:
projectB / submoduleb / build.gradle :
//...
task test() {
println 'hello from :projectB:submoduleb'
}
//...
如何從projectA / build.gradle調用test
?
您可以使用GradleBuild
類型的任務來調用外部Gradle項目。 只需指定另一個項目的項目目錄以及您要執行的任務即可:
task myTask(type: GradleBuild) {
dir = file('path/to/other/project')
tasks = ['test']
}
不幸的是,這種任務類型提供的不只是純粹的任務執行,例如,不可能從任務中獲取反饋。
如果您的設置需要更多類似上述的功能,則可以在項目之間添加某種形式的耦合(多項目構建,復合構建)或編寫自己的自定義解決方案。
您不會在Gradle中調用任務。 根據用於調用Gradle的命令行自動確定要運行的任務及其順序。
如果希望submodleb的構建中的任務始終在submodulea的構建中或與特定任務組一起運行,則可以使用任務依賴項。
例如projectA / build.gradle
build.dependsOn ':projectB:test'
task myTask() {
dependsOn ':projectB:myProjectBTask'
}
使用此構建腳本,調用gradle projectA:build
將在projectB中運行test
任務,然后在projectA中運行build
任務。 同樣,調用gradle projectA:myTask
將首先運行myProjectBTask
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.