我有以下内容:
constructor( private changeDetect: ChangeDetectorRef )
overlay_imageUploads(){
if (!(this.changeDetect as ViewRef).destroyed) {
this.changeDetect.detectChanges()
// do other tasks
this.files = [];
this.overlay_uploadImage = false;
}
}
如何从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()
等,均无济于事。
不受支持吗?
答案 0 :(得分:1)
在Gradle中,任务不直接执行。相反,您可以注册依赖项,然后Gradle决定以哪种顺序执行哪些任务以实现您指定的任务的执行(通常通过命令行)。在较早版本的Gradle中,您可以直接在任务上调用execute()
,但绝对不要使用它。
执行任务时,必须始终完全完成一个任务的执行,直到可以执行另一任务为止。任务的执行始终包括运行所有doFirst
闭包,所有内部任务操作和所有doLast
闭包。
对于您的特定示例,可以使用finalizedBy
方法。它告诉Gradle,每当特定任务运行时,此后的某个时候还必须运行另一个特定任务:
copyToLib.finalizedBy copyOpcThirdParty