从docs,
当您更改自己的构建配置文件时 项目,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'
}
我刚刚发现,每次我为应用程序修改myTask
时,它都会运行build.gradle
,即使我没有更改它。
运行一些检查以确保您的配置不会产生构建错误时,这是否是正常操作?如果是的话,如何在同步时使任务不运行?
环境:
带有gradle-4.9-bin.zip的Android Studio 3.1.3
答案 0 :(得分:2)
您的任务根本没有运行,只是配置了。
Gradle区分配置阶段和执行阶段。在每次调用时,都会配置每个任务,但是仅执行传递给Gradle的任务及其任务相关性。当IntelliJ / AndroidStudio在同步时调用Gradle时,每个任务都将在同步时进行配置。在Gradle中定义任务时,您通过的闭包将用于配置。在执行阶段 中,仅执行任务动作(内部功能),doFirst
和doLast
关闭。对于您的自定义任务,您应该将功能放入这样的闭包中:
task example {
println 'Configuration'
doLast {
println 'Execution'
}
}