gradle - 为什么 gradle clean task 启动所有其他非默认任务?

标签 gradle android-gradle-plugin

我已经设置并运行了 gradle。我的 build.gradle 内部定义了 2 个任务:

task setVersion() {
    println('setVersion')
    //...
}

task setIntegrationEnv() {
    println('setIntegrationEnv')
    //...
}

当我运行时

./gradlew clean

gradle 运行 setVersionsetIntegrationEnv 这两个任务,然后它对我的所有模块(appcloud_module) 在该项目中,输出:

Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
setVersion
setIntegrationEnv
:cloud_module:clean
:app:clean

BUILD SUCCESSFUL

Total time: 14.18 secs

为什么会发生这种情况,这种行为是在哪里定义的?

最佳答案

您能否提供完整的 build.gradle 脚本?我会更容易帮助你。您可能将 gradle build 阶段误认为是 configuration 阶段 - 这是这里的常见主题。

一般规则是,您希望在构建 阶段运行的代码应添加为操作:

task someTask << {
   println 'runtime'
}

虽然您希望在配置阶段运行的代码应该添加到任务主体中:

task someTask  {
   println 'configuration
}

或一起:

task someTask {
   println 'configuration'

   doLast {
      println 'runtime'
   }
}

可以找到更多信息 here , herehere .

关于gradle - 为什么 gradle clean task 启动所有其他非默认任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468507/

相关文章:

android - 如何在 Android studio 中开启 UNIX 模式?

java - 如何长时间、以随机顺序、使用多个实例重复运行 junit 5 测试类?

gradle 前缀排除依赖项

android - 如何在 Android Studio 中为 android buildToolsVersion 或 targetSdkVersion 声明/配置正确的 gradle 依赖项?

Android - 从 github 中排除 api key ,在代码中将 api key 存储在哪里?

android - 没有可用于离线模式的 com.google.gms :google-services:1. x.x 的缓存版本

android - Gradle构建同步失败

gradle - Gradle和Gradlew的问题

android - mergeReleaseResources 失败,原因为 `not valid resource name`(来自 package.json 的版本)

android - 在 Android Studio 中将集成测试与单元测试分开