当前位置: 首页 > 知识库问答 >
问题:

将分级任务标记为“失败”

慕宏峻
2023-03-14
task copySettingsGradle(type: Copy) {
    from file("settings.gradle")
    into file("src/main/resources")
}
build.dependsOn copySettingsGradle

但是如果settings.gradle不在那里,那么它当前似乎会默默地失败:构建会正常进行。

如果此必需的任务失败,我希望防止生成发生。为此,在我看来,我需要两件事:确定from.file(...)找不到文件的方法,然后在任务上设置“失败”标志的方法...什么的。

试图解决这个问题使我找到了abstractcopytask,然后找到了copysourcespec.from...但我一点也不知道。

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

这里有一个问题,从8年前,关于“如何阻止一个梯度建设”。Peter Niederwieser在他的回答中说:“已经讨论过增加[一种阻止的方法]”。

此外,在官方Gradle文档的这一页上,我看到使用了以下表达式:“task will be mark as failed”(如果一个计时器用完)。“已标记为失败”...那意味着???

我发现这是相当惊人的,我没有找到任何有关这方面的信息!“依赖”的概念涉及依赖于其他事物的存在或成功。我不仅找不到这种机制(除了抛出gradleexception)现在是否已经引入到Gradle中,甚至找不到任何关于它的讨论。莫名其妙!

共有1个答案

文华美
2023-03-14

您可以使用ANT copy任务来完成此操作。Gradle允许将调用委托给底层ANT运行时。

ANT copy任务提供了一个名为failonerror的选项,它为您提供failure-if-file-not-found行为。

它看起来像这样:

task copySettingsGradle {
    doLast {
        ant.copy(file: 'settings.gradle',
            todir: 'src/main/resources',
            overwrite: true,
            failonerror: true)
    }
}
 类似资料:
  • 我只是想继续我的应用程序,而我得到了这个编译错误,我不知道它是从哪里开始的: 这是我的分级文件:

  • 我在以可管理的方式组织构建时遇到了问题。在我的gradle构建中有大量的任务,因为对于每个特定的工作元素,gradle都需要一个这种类型的任务。例如:复制一个文件分级需要复制任务类型,压缩一个文件分级需要压缩任务类型,删除几个文件分级需要删除任务类型。Javadoc、Jar、Ear等也需要它们的任务类型。最终,build有大量的任务,要以特定的顺序运行所有这些任务,我必须使用 将这些规则应用于所有

  • 我正在编写一个自定义的gradle插件,它生成代码并注入一些新的gradle任务。我当前的问题是,在上,或任务失败。 在您说but hey之前,R文件不是生成的:它是生成的。我在文件系统中看到了文件。 当我在mac上禁用并行任务时,我玩得更多了,它的编译也很好。然而,在特拉维斯身上,它还是失败了。

  • 我用facebook SDK4.20.0构建了我的android应用程序。当我构建项目时,它在运行到任务中时抛出了zipException Build.Gradle如下: zipInputStream(Android API27)的代码片段: 并且stacktrace显示异常是由以下原因引起的

  • 我正在使用Eclipse的STS插件创建gradle多项目。我以为我在读完教程后得到了基本的知识,但我无法再现所显示的行为。添加时 对于父项目的build.gradle,我将假设每个项目执行的任务'hello‘。为子项目实际进行了2次,但结果只是: 我的项目树看起来或多或少是这样的:

  • Jenkins将良好的构建标记为失败,因为某些单元测试失败。如果我在没有单元测试的情况下运行构建,我将获得构建成功状态。如何配置Jenkins来执行以下操作: