Gradle子项目:如何仅对主项目执行`check`?

时间:2018-10-07 19:46:51

标签: gradle

我在gradle项目中添加了一个子项目,现在只要执行目标check,它也会在子项目上运行测试。

我希望我可以通过将其指定为绝对任务来在主项目上运行check-任务

gradle :check

gradle ::check

但是两个命令行仍然执行所有测试。

有什么主意吗?

2 个答案:

答案 0 :(得分:1)

无法解决这个问题,因此您需要重组构建(我认为父级check的任务根据定义是子项目的集合)。您可以有彼此依赖的子项目,我认为这可能是您要在构建中建模的项目。

让我们假设您有子项目coremyModule。 如果您希望myModule依赖于core(并使用其输出),请向project添加myModule依赖项:

dependencies {
  compile project(':core')
}

这还将正确设置任务依赖项。

答案 1 :(得分:0)

您可以从主项目“ build.gradle”访问子项目的任务图并禁用任务。

这样,您可以在主项目上调用该任务时将其禁用,但是当您直接调用该子项目的构建文件时,该任务仍将被启用:

project('subproject') {
    //disable 'check' and 'test' task
    gradle.taskGraph.whenReady {
        tasks.find {it.name=="check"}.enabled=false
        tasks.find {it.name=="test"}.enabled=false
    }
}