忽略 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 构建失败并继续构建脚本?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 gradle kts 中排除(忽略)android 构建变体
GroovyGradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )
Android Gradle 插件组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )