gpt4 book ai didi

gradle - 将Gradle任务标记为 “failed”

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

我想向Gradle“build”添加一个额外的任务,特别是将文件复制到资源。

所以我这样做:

task copySettingsGradle(type: Copy) {
from file("settings.gradle")
into file("src/main/resources")
}
build.dependsOn copySettingsGradle

但是,如果不存在settings.gradle,则当前似乎会静默失败:构建将正常进行。

如果此必需的任务失败,我想防止构建发生。为此,在我看来,我需要做两件事:一种确定 from.file(...)找不到文件的方法,然后一种在任务上设置“failed”标志的方法……等等。

尝试解决这个问题导致我先输入 AbstractCopyTask,然后再输入 CopySourceSpec.from ...但我却没有一个明智的选择。

当然,我可以使用非DSL Groovy复制并执行成功检查。但是,将所需任务标记为失败的问题使我感到困惑。

8年前就有一个问题 here关于“停止Gradle构建的方式”。彼得·尼德维斯(Peter Niederwieser)在 his answer中说:“有人在讨论增加[一种停止的方式]。”

此外,在 this page of the official Gradle documentation上,我看到使用了以下表达式:“任务将被标记为失败”(如果计时器用完)。 “标记为失败” ...这意味着???

我找不到这方面的任何信息,这真是太神奇了! “依赖”的概念涉及依赖于其他事物的存在或成功。我不仅不知道是否已经将这种机制(除了抛出 GradleException之外)引入了Gradle中,我什至找不到任何讨论。莫名其妙!

最佳答案

您可以使用ANT复制任务来执行此操作。 Gradle允许将调用委派给基础ANT运行时。

ANT复制任务提供了一个名为failonerror的选项,该选项使您获得“找不到文件时失败”的行为。

看起来像这样:

task copySettingsGradle {
doLast {
ant.copy(file: 'settings.gradle',
todir: 'src/main/resources',
overwrite: true,
failonerror: true)
}
}

有关所有可用选项,请参阅ANT文档:
https://ant.apache.org/manual/Tasks/copy.html

关于gradle - 将Gradle任务标记为 “failed”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60797356/

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