【问题标题】:Run clean task before every build automatically in Gradle在 Gradle 中自动每次构建之前运行清理任务
【发布时间】:2017-05-22 18:35:59
【问题描述】:

我想在 Gradle 中的 assembleRelease 任务之前“清理”一个项目。

我怎样才能基本上在一切之前触发清理任务?

【问题讨论】:

    标签: android gradle android-gradle-plugin build.gradle gradle-task


    【解决方案1】:

    在 gradle 中你可以使用dependsOn 方法。

    B.dependsOn A
    

    这样:

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

    在你的情况下:

    assembleRelease.dependsOn clean
    

    【讨论】:

    • 构建脚本
    • @Xerus 哪一个,在哪里? Could not get unknown property 'assembleRelease' for project ':app' of type org.gradle.api.Project.
    • 它必须在tasks { } 块内。哪个构建脚本取决于您要配置的项目。
    【解决方案2】:

    除此之外,我需要做的是在

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

    现在效果很好

    【讨论】:

    • 那个语法看起来不太好。这条线应该做什么?
    【解决方案3】:

    每个构建变体首先使用以下代码执行清理任务

    project.afterEvaluate {
        android.applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def capitalizedVariant = variant.name.capitalize()
                def assembleVariantTask = project.tasks."assemble${capitalizedVariant}"
                assembleVariantTask.dependsOn clean
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-26
      • 1970-01-01
      • 2013-09-03
      • 2011-12-30
      • 2020-11-17
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多