在Gradle中自动在每次构建之前运行清理任务

7

在Gradle中的assembleRelease任务之前,我希望运行一个名为"clean"的项目。

如何在基本上在所有任务之前触发clean任务?

3个回答

2
在 gradle 中,您可以使用 dependsOn 方法。
B.dependsOn A

通过这种方式:

  • 任务B依赖于任务A
  • Gradle在执行B任务之前每次都会执行A任务。

在您的情况下:

assembleRelease.dependsOn clean

构建脚本 - xeruf
@Xerus 是哪一个并在哪里?“无法获取类型为 org.gradle.api.Project 的项目 ':app' 的未知属性 'assembleRelease'。” - Bowi
它需要在 tasks { } 块内部。哪个 buildscript 取决于你想要配置哪个项目。 - xeruf

0
此外,我需要做的是将其放在

标签中。

    android {
    afterEvaluate { 
       assemble(*your task here*)debug clean
}

现在它运行得很好


这个语法看起来不太对。这一行代码应该做什么? - xeruf

0
使用以下代码在每个构建变体中首先执行清理任务。
project.afterEvaluate {
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def capitalizedVariant = variant.name.capitalize()
            def assembleVariantTask = project.tasks."assemble${capitalizedVariant}"
            assembleVariantTask.dependsOn clean
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接