有什么办法可以清除gradle 6.0.1中的所有项目

时间:2020-02-19 12:39:52

标签: gradle

我想清理gradle的所有项目,现在我在根项目build.gradle中使用此任务:

task clean {
    subprojects.each {
        it.afterEvaluate {
            def cleanTask = it.tasks.findByName('clean')
            if (cleanTask) {
                dependsOn(cleanTask)
            }
        }
    }
}

给我提示这个干净的任务已经存在,还有其他方法可以完成此任务吗?我不想写很多代码:

./gradlew clean projectA
./gradlew clean projectB
./gradlew clean projectC

现在我有30多个项目。

1 个答案:

答案 0 :(得分:3)

Gradle中有一个功能,其中:

  • 如果您在根项目上调用任务
  • 并且根项目不包含该任务
  • 将在根项目中创建一个“代理”任务
  • “代理”任务将在其子项目中调用任何具有相同名称的任务

因此,通常,您的子项目将包含“干净”任务,而您的根项目则不会。因此,在根项目上调用“ clean”实际上会在所有子项目上调用“ clean”。我认为这是您想要的行为?

如果这没有发生,则可能是您已在根项目中创建了一个具有不同行为的“干净”任务(也许您已将“基本”插件应用于根项目?)。我建议您从根项目中删除“清理”任务