簡體   English   中英

gradle在外部項目上運行任務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM