Gradle中是否有方法在构建后执行某些任务?

Gradle中是否有方法在构建后执行某些任务?,gradle,Gradle,构建完成后,是否有任何方法来执行某些任务 我已经检查了doLast,但它只用于任务(task1.doLast(task2))而不用于构建…阅读并检查后,答案是build.finalizedBy(copyToLib)您可以调用 tasks.build.doLast(){ println'这将在生成任务之后打印,即使其他内容调用生成任务' } 您不能执行task1.doLast(task2)。那么有没有办法执行build.doLast(Task)?我知道这应该是个了结,但也许有办法……不,没有。选项

构建完成后,是否有任何方法来执行某些任务


我已经检查了
doLast
,但它只用于任务(
task1.doLast(task2)
)而不用于构建…

阅读并检查后,答案是
build.finalizedBy(copyToLib)
您可以调用

tasks.build.doLast(){
println'这将在生成任务之后打印,即使其他内容调用生成任务'
}

您不能执行
task1.doLast(task2)
。那么有没有办法执行
build.doLast(Task)
?我知道这应该是个了结,但也许有办法……不,没有。选项是使用任务关系,例如
dependsOn
finalizedBy
,或
gradle.buildFinished{}
挂钩。这仅在调用
gradle build
时起作用。要使其可靠地工作,您必须执行
任务.all*.finalizedBy(copyToLib)
,或者使用诸如
gradle.buildFinished{}
之类的钩子而不是任务。我还遇到了一个问题,即当我有子模块要构建时,在子模块构建脚本中,我将使用
build.finalizedBy(copyToLib)
copyToLib
任务将在整个主项目构建完成后执行。我想在构建子模块后执行一个简单的“复制到”任务。有什么办法吗?子项目不是一个接一个地构建的。任务执行顺序完全由任务依赖关系决定。所以,您能为我的问题提出一些解决方案吗?我有两个子项目的主项目。在“核心”项目结束时,我想将一些文件复制到一个特定的文件夹(“LIB”),以便第二个子项目可以使用该文件夹做某事(复制或用作依赖项)。PS:这是你应该在问题中描述的问题。有人能评论一下吗?这是否不同,更好,比上面建议的那样做
gradle.buildFinished
更糟糕?