Gradle: 'dependsOn' 到其他子项目中的任务

Gradle: 'dependsOn' to task in other subproject

我有一个分层的 gradle 3.1 项目,它看起来像这样:

root
    - build.gradle
    - settings.gradle
    - server (Java + WAR plugin)
        - build.gradle
    - client (Node plugin)
        - build.gradle

因此 settings.gradle 看起来像这样:

include ':server', ':client'

我现在想做的是将 :client:build 任务的输出捆绑到 :server:war 任务生成的 *.war 文件中。为此,我需要从 :server:war:client:build 的依赖关系,以确保 :client:build 的输出文件在我需要将它们复制到 :server:war 时始终存在任务。

问题是:这是如何工作的?

我想在这里实现的是:每当执行:server:war时,:client:build首先执行

到目前为止我尝试过的事情(none 有效):

// in server/build.gradle
task war {
    dependsOn ':client:build'
}

我也试过:

// in server/build.gradle
war.dependsOn = ':client:build'

...还有:

// in server/build.gradle
task war(dependsOn: ':client:build') {

}

None 以上尝试有效。知道我做错了什么吗?

请试一下:

war.dependsOn ':client:build'

和:

task war {
    dependsOn ':client:build'
}

定义了一个名为 war

的新任务

和:

war.dependsOn = ':client:build'

理论上调用了this方法但是参数类型错误

和:

task war(dependsOn: ':client:build') {
}

在这里你也定义了一个新任务。