Gradle如何在任务失败后继续构建
如果我们运行Gradle构建并且其中一项任务失败,则整个构建将立即停止。因此,我们可以快速反馈构建状态。如果我们不想这样做,并且希望Gradle执行所有任务,即使某些任务可能失败了,我们也可以使用命令行选项--continue。当我们使用--continue命令行选项时,Gradle将执行从属任务没有失败的所有任务。这在多模块项目中也很有用,即使在某些项目中测试可能失败,我们也可能希望构建所有项目,因此我们可以全面了解所有模块的失败测试。
在下面的Gradle构建文件中,我们有两个任务。任务failTask抛出TaskExecutionException故意使任务失败。该successTask不会失败:
task failTask << { task ->
println "Running ${task.name}"
throw new TaskExecutionException(
task,
new Exception('Fail task on purpose'))
}
task successTask << {
println "Running ${it.name}"
}
让我们从命令行运行这两个任务并查看输出:
$ gradle failTask successTask
:failTask
Running failTask
:failTask FAILED
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/mrhaki/samples/gradle/continue/build.gradle' line: 4
* What went wrong:
Execution failed for task ':failTask'.
> Fail task on purpose
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 4.148 secs
$
我们看到构建失败,仅failTask执行任务。现在我们运行相同的两个任务,但是我们使用命令行选项--continue:
$ gradle --continue failTask successTask
:failTask
Running failTask
:failTask FAILED
:successTask
Running successTask
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/mrhaki/samples/gradle/continue/build.gradle' line: 4
* What went wrong:
Execution failed for task ':failTask'.
> Fail task on purpose
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 6.918 secs
$
这次,successTask即使failTask再次失败,也会执行。Gradle将跟踪所有失败的任务,并显示所有失败任务的摘要。
- 郑重声明:文章禁止第三方(腾讯云除外)转载、发表,事情原委测试窝,首页抄我七篇原创还拉黑,你们的良心不会痛吗?。
技术类文章精选
- java一行代码打印心形
- Linux性能监控软件netdata中文汉化版
- 接口测试代码覆盖率(jacoco)方案分享
- 性能测试框架
- 如何在Linux命令行界面愉快进行性能测试
- 图解HTTP脑图
- 将swagger文档自动变成测试代码
- 五行代码构建静态博客
- 基于java的直线型接口测试框架初探
- JUnit中用于Selenium测试的中实践
非技术文章精选
- 为什么选择软件测试作为职业道路?
- 写给所有人的编程思维
- 成为优秀自动化测试工程师的7个步骤
- 手动测试存在的重要原因
- 成为自动化测试的7种技能
- 自动化和手动测试,保持平衡!
- 自动化测试生命周期
- 如何在DevOps引入自动化测试
- Web端自动化测试失败原因汇总
Gradle如何在任务失败后继续构建的更多相关文章
- 记一次构建SaaS平台项目失败后的反思(收集的客户需求太少,且没有区分重点,闭门造车。技术演变要渐进)
记一次构建SaaS平台项目失败后的反思 前言: 笔者从2017年起开始着手将公司现有的软件系统改造成多租户模式,以降低整个系统的运营成本.但最后这个项目以失败告终.今天,我将对这个SaaS项目是如何走 ...
- testNG实现test失败后重复执行,
test失败自动执行大大提高测试结果的准确性, 1.修改testNG源码实现test失败自动执行, 首先获取testng的源码, 获取源代码,构建过程: $ git clone git://githu ...
- jenkins pipeline构建后返回构建结果给gitlab
jenkins pipeline构建后返回构建结果给gitlab 使用场景 gitlab 合并请求时要求管道任务必须成功,否则无法执行合并操作,又不想使用gitlab ci 工具. 实现方法 1.Ge ...
- Fedora 21 安装 Nvidia 驱动以及失败后的补救方法
在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...
- 删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡
Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲 ...
- Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh
Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh前,要先清除之前的crs配置信息 # /u01/app/11.2.0/grid/crs/install/rootcr ...
- Windows Service 之 安装失败后的删除
一个windows服务在卸载之后并不会马上从服务列表中消失掉,而是在服务列表中会显示服务被禁用:这样在你需要再次安装同名服务时,就装不了了,会被提示同名的服务已经存在.如果是在本地安装,这种情况很容易 ...
- Oracle 数据库 JOB 失败后解密法重试
因为官方文档上没有找到相关的说明,所以这里进行了例如以下測试,为了找到oracle数据库中 job 失败后重试时间的规律. 数据库版本号:11.2.0.3 測试说明:这里创建了一个日志表以及一个执行时 ...
- maven下载jar包失败后无法再次重新下载
maven下载jar包失败后无法再次重新下载:删除maven 资源库中的 *.lastUpdated文件
随机推荐
- js prop方法
添加和删除属性 $("button").click(function(){ var $x = $("div"); <!--添加属性--> $x.pr ...
- 聊一聊JS输出为[object,object]是怎么回事
JS输出为[object object] 今天在学习ES6中的 Symbol 数据类型时,在写demo时控制台输出为 Symbol[object object] ,当时有点疑惑,查阅了相关资料后搞清楚 ...
- 语句知识总结(js)
函数声明语句和函数定义表达式有什么不同 首先看一下函数声明语句和函数定义表达式的例子,表达式会返回一个值,而语句就是js中的一整句,下面例子中第6行是函数声明语句,第10行是函数定义表达式. f(); ...
- 简单介绍托管执行和 CLI
目录 CIL 和 ILDASM 查看 myApp.dll 的 CIL 输出 使用 ILSpy 查看 myApp.dll 反编译后的代码 处理器不能直接解释程序集.程序集用的是另一种语言,即公共中间语言 ...
- vscode搭建C/C++环境
windows安装Mingw-w64 Mingw-w64安装 准备工作 创建文件夹Vc_c++ 在Vc_c++文件夹下创建下面两个文件夹 在g++下创建demo.cpp 在gcc下创建demo.c 打 ...
- Python—类和实例对象
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...
- 搭建API Mock
所需环境 Node.js + MySQL 5.7+ Redis 4.0+ Node.js 安装 .要安装nvm,需要安装构建源包所需的工具,CentOS 上安装,用这些命令来安装构建工具: sudo ...
- MQ报错2009/2085解决方法
1.1. 响应2009错误 1.1.1. 涉及协议 MQ,调试回放阶段 1.1.2. 错误信息 完成码2原因为2009 1.1.3. 可能原因 远端MQ连接数不足,拒绝连接 1.1.4. ...
- Python学习:50 行 Python 代码,带你追到最心爱的人
程序员世纪难题 人们一提到程序员第一反应就是:我知道!他们工资很高啊!但大部分都是单身狗,不懂得幽默风趣,只是每天穿格子 polo 衫的宅男一个.甚至程序员自己也这样形容自己:钱多话少死的早.程序员总 ...
- c博客06-2019-结构体&文件
1.本章学习总结 1.1 学习内容总结 结构体如何定义.成员如何赋值: 1.常见的定义: struct student { int num; char name[20]; }stu; //2.采用ty ...