gradle子项目任务的语法取决于父项目的任务?

Edd*_*ied 5 dependencies build gradle

我需要有关Gradle构建文件的帮助。我有一些子项目,具体取决于顶层文件夹中的任务。我只需要承担一个test任务并将其分为两个单独的测试任务。当前,文件系统结构如下所示(选项卡指示目录中的文件):

top-level-project-folder
    A.gradle
    B.gradle
    C-subproject-folder
        C.gradle
    D-subproject-folder
        D.gradle
Run Code Online (Sandbox Code Playgroud)

A.gradle的内容(重构之前):

subprojects {
    tasks.test.dependsOn {
        bTask
    }
}
apply from: 'B.gradle'
Run Code Online (Sandbox Code Playgroud)

C.gradle的内容(重构之前):

test {
    ...
}
Run Code Online (Sandbox Code Playgroud)

重构之后,C.gradle需要看起来像:

test {
    ...
}

task runDifferentTests(type : Test) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

棘手的部分是当前C.gradletest任务取决于bTask。然而,重构后C.gradletest任务应该依赖bTask,但新的runDifferentTests任务应该依赖bTask。(当前,D.gradletest任务被标记为依赖bTask,但实际上并没有依赖它-我想删除该依赖关系。两个子项目中唯一依赖的任务bTask是新runDifferentTests任务。)

我尝试了一些不同的方法,但似乎找不到有效的解决方案。

Mar*_*win 5

只需删除声明subprojects并直接在子项目中声明您的依赖项,在C.gradle

runDifferentTests.dependsOn rootProject.bTask
Run Code Online (Sandbox Code Playgroud)