Gradle任务不在Android Studio中执行

时间:2014-09-27 00:54:19

标签: android gradle android-studio build.gradle

我试图在Android Studio项目中为lib模块'lib1'执行gradle任务。它应该使用命令'gradlew assembleDebug'或'gradlew assemble'运行,但它永远不会运行。

task copy(type: Copy, dependsOn: ':lib1:assembleDebug') << {
  println "copying"
}

我尝试了一个没有依赖性的简单任务,它似乎也从未运行过。

task hello << {
  println 'hello world'
}

这会运行但只是在配置阶段。

task hello {
  println 'hello world'
}

在库模块组装完成后,我需要在执行阶段获得一份副本。任何线索该做什么?

1 个答案:

答案 0 :(得分:7)

您需要以某种方式将任务添加到任务依赖关系图。通常,通过使现有任务依赖于它。在这种情况下,copy取决于assembleDebug,这只是意味着,如果您运行copy任务,assembleDebug必须先运行。 意味着运行assembleDebug会导致copy运行。将其添加到您的构建中。

assemble.dependsOn copy

现在运行gradlew assemble将导致copy任务执行。

您的第二个任务已正确定义,但同样,其他任务都不依赖于它,因此只有在您通过gradlew hello显式运行或通过添加上述依赖项时才会执行。

您的第三个任务在配置阶段打印一行,因为仅在该阶段评估该闭包。 <<运算符添加了doLast操作,该操作在执行时运行。