我需要有关Gradle构建文件的帮助。我有一些子项目依赖于顶层文件夹中的任务。我只需要将一个test
任务拆分为两个单独的测试任务。当前的文件系统结构如下所示(选项卡指示目录中的文件):
top-level-project-folder
A.gradle
B.gradle
C-subproject-folder
C.gradle
D-subproject-folder
D.gradle
A.gradle的内容(重构前):
subprojects {
tasks.test.dependsOn {
bTask
}
}
apply from: 'B.gradle'
C.gradle的内容(重构前):
test {
...
}
重构之后,C.gradle需要看起来像:
test {
...
}
task runDifferentTests(type : Test) {
...
}
棘手的是,C.gradle
的test
任务当前依赖于bTask
,但是,在重构之后,C.gradle
的test
任务不应该依赖于bTask
,而新的runDifferentTests
任务应该依赖于bTask
。(当前,D.gradle
的test
任务被标记为依赖于bTask
,但实际上它并不依赖于bTask
--我希望删除该依赖性。两个子项目中依赖于bTask
的唯一任务是新的runDifferentTests
任务。)
我试过一些不同的方法,但似乎找不到一个有效的解决办法。
3条答案
按热度按时间ncecgwcz1#
只需删除
subprojects
中的声明,并直接在C.gradle
的子项目中声明依赖项:dy1byipe2#
这里有一些语法解决方案:
:
可用于代替rootProject向上一级,具体取决于首选项和项目结构v1uwarro3#
您可以尝试一下(目前使用gradle 8.0.1):
例如=〉如果您的一个或多个子项目确实有一个名为“checkDependencies”的任务,您可以在根项目Gradle中应用该任务:
如果现在调用 dependencyCheckRoot,它将依赖于找到的所有子项目任务。