【问题标题】:How to add a Gradle task to an Android build如何将 Gradle 任务添加到 Android 构建
【发布时间】:2018-12-04 22:19:11
【问题描述】:

我想在 Android Studio 下向我的 Android 构建添加一个 gradle 任务。各种在线文档清楚地显示了如何创建任务,但没有将它放在 build.gradle 文件中的哪个位置以及其中一个。

一个简单、完整的例子就完美了

顺便说一句,我想添加一个构建前任务来准备一些数据,并且可能添加一个构建后任务来进行一些验证/确认。

【问题讨论】:

  • 问题/问题是,如前所述,我应该在 build.gradle 中的何处插入任务。
  • “空闲任务槽”?从来没有听说过。请提供示例。

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


【解决方案1】:

通过反复试验和 Martin Zeitler 的输入,我成功地将构建前和构建后任务添加到我的 build.gradle(应用程序模块)中,如下所示:

这非常有效。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "MyPackage"
        minSdkVersion 11
        targetSdkVersion 26
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    dependencies {
      // My libraries here
    }

    // MY PREBUILD TASK
    task PreBuild {
        println "MY PRE-BUILD TASK"
    }

    // MY POSTBUILD TASK
    gradle.buildFinished {
        println "MY POST_BUILD TASK"
    }
}

【讨论】:

  • 曾经在这里回答过这个问题:stackoverflow.com/a/52430611/549372 ...尽管该问题的操作以某种方式未能应用所提供的解决方案,但它仍然有效。关于上面的答案:dependsOn 可能比定义一些松散的任务(尽管如此会在早期执行)更可靠。
  • 预构建任务不正确,相当于将代码放在 build.gradle 文件的任何位置。要将其作为任务,代码将位于 doFirst 或 doLast 块中,并附加到构建过程中的另一个任务。如果像建议的那样在 PreBuild 中执行代码,它真的会弄乱你的构建缓存并降低性能。
猜你喜欢
  • 1970-01-01
  • 2017-07-07
  • 2017-12-09
  • 2018-03-02
  • 1970-01-01
  • 2021-05-04
  • 2016-06-19
  • 2016-09-22
  • 2018-11-14
相关资源
最近更新 更多