问题 如何确保gradle构建的processResources任务始终运行?


我们有一个奇怪的问题,即随机且不经常的,即删除META-INF文件夹和编译类以启动的compileJava任务,但是processResources任务报告是最新的,即使META-INF目录显然不存在。

这给我们留下了很大的时间,因为没有applicationContext.xml,工件可能会让它一直生产!

对于我们来说,运行该任务的成本非常低,是否有可能强制它运行,无论如何?


10064
2017-11-11 18:53


起源

Gradle 1.0-milestone-5及更高版本将类文件和资源放入不同的目录(构建/类和构建/资源)。很高兴知道这是否能解决您的问题,而无需使用解决方法。 - Peter Niederwieser


答案:


也许有某种错误无法清除gradle缓存。一种可能的解决方案是首先强制任务通过运行来清理自己的输出 cleanProcessResources

如果这不起作用,那么尝试覆盖 upToDateWhen 你的任务输出的谓词如下:

processResources.outputs.upToDateWhen{ false }

但是我不知道这个API是否是永久性的。


13
2017-11-12 01:02



我当然希望是这样。这很棒。 - Ryan Shillington