忽略 Gradle 构建失败并继续构建脚本?

Posted

技术标签:

【中文标题】忽略 Gradle 构建失败并继续构建脚本?【英文标题】:Ignore Gradle Build Failure and continue build script? 【发布时间】:2015-05-13 22:28:25 【问题描述】:

使用 Gradle 管理 android 的依赖项是以一种奇怪的方式完成的。它们必须以不同的方式下载到本地存储库中。这在设置 CI 构建时很痛苦,因为它可以在多个节点上运行。因此,我使用 sdk-manager-plugin 在构建时下载 Android 依赖项。我似乎在使用 sdk-manager-plugin 时遇到了an old bug,尽管它会在构建时下载依赖项,但它们在该命令中不可用。

下次运行命令时一切正常(因为所有内容都已下载),但我需要找到一种方法来忽略第一个 gradle 命令的构建失败,以便下载所有内容并准备好进行第二个.我意识到这是 hacky,但我已经搞砸了。

理想情况下这样的事情会起作用:

./gradlew clean --ignoreBuildFailures
./gradlew distributeCIBuild

我在 Gradle 文档中能找到的最接近的东西是 --quite,但它看起来不起作用。

欢迎任何有创意的解决方案。

【问题讨论】:

--continue 呢? 我在 --continue 上找不到任何文档。 尝试运行 ./gradlew --help 或查看 [1]。描述是“在任务失败后继续执行任务”。 [1]:gradle.org/docs/current/userguide/gradle_command_line.html 在上面我用假的--ignoreBuildFailures 发布的示例中,你认为如果我用--continue 替换它会起作用吗?听起来它在运行清理后仍然会失败。它只是保存到最后。 这似乎奏效了(尽管有时很难重现)。您介意创建一个答案,我会在一天左右将其标记为正确吗? 【参考方案1】:

要使用的标志是--continue

来自documentation:

在任务失败后继续执行任务。

【讨论】:

感谢您提供非常有价值的答案。因此,我能够解决客户端部署问题。 :) @UtkarshMankad 你不能是认真的:o 我们启用“警告为错误”但让事情变得容易“尝试”的方式。【参考方案2】:

在 build.gradle 文件中添加:

tasks.withType(JavaCompile) 
    options.failOnError(false)

【讨论】:

以上是关于忽略 Gradle 构建失败并继续构建脚本?的主要内容,如果未能解决你的问题,请参考以下文章

构建失败 - flutter.gradle

如何在 gradle kts 中排除(忽略)android 构建变体

GroovyGradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )

如何忽略错误并继续脚本的其余部分

Android Gradle 插件组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )

Gradle常用命令