将项目与 Gradle 文件同步时,如何阻止 Android Studio 运行我的 gradle 任务?

zwc*_*oud 3 android gradle

文档中

当您对项目中的构建配置文件进行更改时,Android Studio 要求您同步您的项目文件,以便它可以导入您的构建配置更改并运行一些检查以确保您的配置不会产生构建错误。

我的build.gradle应用程序:

apply plugin: 'com.android.application'

android {
    //...  <--modified here
}

task myTask() {
    println 'doing something...'
    //time-consuming operations which may takes 16s or more
    println 'done'
}
Run Code Online (Sandbox Code Playgroud)

我只是发现myTask每次修改build.gradlefor 应用程序时它都会运行,即使我没有更改它。

运行一些检查以确保您的配置不会产生构建错误时,这是正常操作吗?如果是这样,如何在同步时使任务不运行?

环境
Android Studio 3.1.3 with gradle-4.9-bin.zip

Luk*_*fer 8

你的任务根本没有运行,它只是被配置了。

Gradle 区分了配置阶段执行阶段。每次调用时,都会配置每个任务,但仅执行传递给 Gradle 的任务及其任务依赖项。由于 IntelliJ/AndroidStudio 在同步时调用 Gradle,因此每个任务都在同步时进行配置。当您在 Gradle 中定义任务时,您传递的闭包用于配置。在执行阶段仅执行任务操作(内部功能)doFirstdoLast闭包。对于您的自定义任务,您应该将您的功能放入这样的闭包中:

task example {
    println 'Configuration' 
    doLast {
        println 'Execution' 
    } 
} 
Run Code Online (Sandbox Code Playgroud)