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

Ala*_*n47 8 dependencies war gradle

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

root
    - build.gradle
    - settings.gradle
    - server (Java + WAR plugin)
        - build.gradle
    - client (Node plugin)
        - build.gradle
Run Code Online (Sandbox Code Playgroud)

settings.gradle因此看起来是这样的:

include ':server', ':client'
Run Code Online (Sandbox Code Playgroud)

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

问题是:如何工作的?

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

到目前为止我尝试的事情(没有一个工作):

// in server/build.gradle
task war {
    dependsOn ':client:build'
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

// in server/build.gradle
war.dependsOn = ':client:build'
Run Code Online (Sandbox Code Playgroud)

... 并且:

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

}
Run Code Online (Sandbox Code Playgroud)

上述尝试均无效.知道我做错了什么吗?

Opa*_*pal 10

请尝试:

war.dependsOn ':client:build'
Run Code Online (Sandbox Code Playgroud)

和:

task war {
    dependsOn ':client:build'
}
Run Code Online (Sandbox Code Playgroud)

定义一个名为的新任务 war

和:

war.dependsOn = ':client:build'
Run Code Online (Sandbox Code Playgroud)

理论上调用方法但参数的类型错误

和:

task war(dependsOn: ':client:build') {
}
Run Code Online (Sandbox Code Playgroud)

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