use*_*805 5 android gradle android-studio build.gradle
我试图在Android Studio项目中为lib模块'lib1'执行gradle任务.它应该使用命令'gradlew assembleDebug'或'gradlew assemble'运行,但它永远不会运行.
task copy(type: Copy, dependsOn: ':lib1:assembleDebug') << {
println "copying"
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一个没有依赖的简单任务,它似乎也从未运行过.
task hello << {
println 'hello world'
}
Run Code Online (Sandbox Code Playgroud)
这会运行,但它只在配置阶段.
task hello {
println 'hello world'
}
Run Code Online (Sandbox Code Playgroud)
在库模块组装之后,我需要在执行阶段获得一个副本.有什么线索怎么办?
您需要以某种方式将任务添加到任务依赖关系图.通常,通过使现有任务依赖于它.在这种情况下,copy
取决于assembleDebug
,这仅仅意味着,如果您运行copy
任务,assembleDebug
必须先运行.这并不意味着运行assembleDebug
会导致copy
运行.将其添加到您的构建中.
assemble.dependsOn copy
Run Code Online (Sandbox Code Playgroud)
现在运行gradlew assemble
将导致copy
任务执行.
您的第二个任务已正确定义,但同样,其他任务都不依赖于它,因此只有通过显式通过gradlew hello
或通过添加上述依赖项运行它才会执行.
您的第三个任务在配置阶段打印一行,因为仅在该阶段评估该闭包.这是<<
增加了一个运营商doLast
,其在执行时运行的动作.
归档时间: |
|
查看次数: |
3319 次 |
最近记录: |