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

时间:2014-10-20 14:47:42

标签: gradle android-gradle

我已经设置并运行了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

为什么会发生这种情况,定义了这种行为?

1 个答案:

答案 0 :(得分:5)

你能提供完整的build.gradle脚本吗?我会更容易帮助你。您可能会误认为使用配置阶段的gradle build 阶段 - 这是一个常见的主题。

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

task someTask << {
   println 'runtime'
}

代码您希望在配置阶段运行代码应添加到任务正文中:

task someTask  {
   println 'configuration
}

或全部:

task someTask {
   println 'configuration'

   doLast {
      println 'runtime'
   }
}

可以找到其他信息hereherehere