簡體   English   中英

Gradle:從子項目中遞歸執行調用根任務

[英]Gradle: Call root-task with recursive execution from subprojects

如果我有這樣的gradle多項目

RootProject
+-- SubProjectA
+-- SubProjectB

每個項目都有一個任務“ foo”,我可以在根項目上調用它

RootProject>gradle foo

並且也為子項目執行

:foo
:SubProjectA:foo
:SubProjectB:foo

但是如果我從子項目中調用任務':foo'

RootProject\SubProjectA>gradle :foo

僅執行根項目上的任務

:foo

但不是子項目上的“ foo”任務。

在子項目中時,是否可以在所有項目上調用“ foo”? 我之所以這樣問是因為我正在使用gradle eclipse插件,並且在那里我只能訪問子項目,即我在eclipse中看到的項目。

順便說一句:到目前為止,我想出了(有些hacky)解決方案

task fooAll(type:Exec) {
    workingDir '..'
    commandLine 'cmd', '/c', 'gradle foo'
}

將任務名稱 (例如foo )解析為任務是start目錄的功能,默認情況下為當前目錄。 您可以使用-p命令行選項更改開始目錄(請參閱gradle --help )。 因此,您必須執行gradle foo -p ../

另外,導入根項目可能是解決Eclipse問題的更好方法。 Eclipse工具可以很好地處理分層目錄布局。

PS:: :foo是任務路徑 它指的是任務命名為foo根項目( : )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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