我有以下几点:
task copyToLib(type: Copy) {
from configurations.runtime
into "$buildDir/output/lib"
doLast { copyOpcThirdParty() } // this doesnt get executed
}
task copyOpcThirdParty(type: Copy) {
from "$projectDir/libs/opc/thirdparty"
into "$buildDir/output/lib/thirdparty/"
}
我怎样才能copyOpcThirdParty
从打电话copyToLib.doLast
?
我试过.execute()
,tasks.copyOpcThirdParty
等等,没有任何效果..
它不受支持吗?
在 Gradle 中,任务不会直接执行。相反,您可以注册依赖项,然后 Gradle 决定以何种顺序执行哪些任务以实现您指定的任务的执行(通常通过命令行)。在旧版本的 Gradle 中,您可以execute()
直接调用任务,但永远不应使用它。
在执行任务时,必须始终完成一个任务的执行,直到可以执行另一个任务。一个任务的执行总是包括运行所有的doFirst
闭包、所有的内部任务动作和所有的doLast
闭包。
对于您的具体示例,您可以使用该finalizedBy
方法。它告诉 Gradle,每当一个特定任务运行时,在某个时间之后另一个特定任务也必须运行:
copyToLib.finalizedBy copyOpcThirdParty
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句