gpt4 book ai didi

java - 构建后的 Gradle 复制任务

转载 作者:行者123 更新时间:2023-11-30 08:32:40 26 4
gpt4 key购买 nike

在 Gradle 中,很容易定义构建后要运行的任务。

task finalize1 << {
println('finally1!')
}
build.finalizedBy(finalize1)

这按预期工作。但是现在我想在最后执行一个复制任务。

task finalize (type: Copy) {
def zipFile = file('data/xx.zip')
def outputDir = file("data/")
println('Unzip..')
from zipTree(zipFile)
into outputDir
}
build.finalizedBy(finalize)

这不再起作用了。我在构建开始时看到“解压缩”输出(我需要在最后提取)。

Unzip..
:clean
:compileJava
:processResources
:classes
:findMainClass
:jar
:bootRepackage
:assemble
...

<<看起来有技巧,但我该如何合并这两者?

最佳答案

你不必。您在构建开始时看到 Unzip...,但这并不意味着 Gradle 正在执行您的任务。

当 Gradle 开始配置您的复制任务时,此消息将打印在控制台中,例如添加输入和输出路径。真正的执行是在构建之后完成的。要验证您是否可以使用 doLast 闭包:

task finalize (type: Copy) {
doLast { println 'running now' }
...
}

doLast block 中的代码将在构建后执行。

附言不要将剩余的任务代码(from zipTree(zipFile) 等)移到 doLast 闭包中,它不会工作。

关于java - 构建后的 Gradle 复制任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com