学习总结-持续更新
如何忽略UP-TO-DATE
gradle会自动检测task是否曾经运行过,而忽略中间没有任何变化的task,而判断的前提是task的输入输出是否有变化,这会导致一个问题,比如如果运行gradle test执行junit测试,第一次执行成功,第二次再运行同样的task,就会忽略这个task(即显示task为UP-TO-DATE,不用再运行),导致无法重复测试。
经过调查,发现以下几种方式可以忽略UP-TO-DATE,重复运行task。
(1)所以如果需要强制运行某个task的话,需要使用 --rerun-tasks。
但是这样会有个副作用,这样会重新运行任务及其依赖的所有任务
gradle --rerun-tasks test
(2) Java插件为每个其他任务定义了一个干净的任务,cleanTaskName - 删除由指定任务创建的文件。cleanJar将删除由jar任务创建的JAR文件,cleanTest将删除由测试任务创建的测试结果
gradle clearTest
(3)其他选项是在构建中添加upToDateWhen:
test.outputs.upToDateWhen {false}