gpt4 book ai didi

gradle - Gradle Jar任务忽略doLast中的destinationDir

转载 作者:行者123 更新时间:2023-12-03 05:12:46 25 4
gpt4 key购买 nike

我需要在构建执行阶段执行Jar任务。
我试过了

task ("createJar", type: Jar, dependsOn: "some_task") {
doLast{
println ("default destinationDir " + destinationDir)
destinationDir file("some_location")
println ("destinationDir after change" + destinationDir)
from "some_dir"
}
}

记录器显示destinationDir的值已更改。但是,当我运行脚本时,它将在默认位置而不是“some_location”中创建Jar。

如果删除“doLast”,那么任务将在配置阶段起作用,并忽略不符合我的需求的dependsOn值。

最佳答案

不要在执行阶段更改配置。这将与最新检查相反,并且您的任务可能在不需要时执行,或者甚至在必要时不执行。除非您完全禁用此任务的最新检查,否则您将禁用Gradle的一大强项。

不要执行doLast,它可以正常工作。如您所述,该任务是而不是在配置阶段运行。在配置阶段仅运行println语句,就像在配置块中一样。实际的任务执行将在您定义的依赖项之后发生。

PS:当然,您必须在doFirst { }中设置配置,而不是doLast { }。顾名思义,doLast { }是在之后所有已存在的任务 Action 之后执行,doFirst { } 之前执行。但是请不要这样做,这很可能不是正确的选择。

关于gradle - Gradle Jar任务忽略doLast中的destinationDir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41636448/

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