我试图在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'
}
在库模块组装完成后,我需要在执行阶段获得一份副本。任何线索该做什么?
答案 0 :(得分:7)
您需要以某种方式将任务添加到任务依赖关系图。通常,通过使现有任务依赖于它。在这种情况下,copy
取决于assembleDebug
,这只是意味着,如果您运行copy
任务,assembleDebug
必须先运行。 不意味着运行assembleDebug
会导致copy
运行。将其添加到您的构建中。
assemble.dependsOn copy
现在运行gradlew assemble
将导致copy
任务执行。
您的第二个任务已正确定义,但同样,其他任务都不依赖于它,因此只有在您通过gradlew hello
显式运行或通过添加上述依赖项时才会执行。
您的第三个任务在配置阶段打印一行,因为仅在该阶段评估该闭包。 <<
运算符添加了doLast
操作,该操作在执行时运行。