如何确保gradle构建的processResources任务始终运行?
我们遇到了一个奇怪的问题:compileJava任务会随机且不经常地删除META-INF文件夹和要启动的编译类,但它会运行,而processResources任务报告的是最新的,即使META-INF目录显然不存在 这给我们带来了很大的麻烦,因为这些工件可能在不使用applicationContext.xml的情况下一直进入生产阶段如何确保gradle构建的processResources任务始终运行?,gradle,Gradle,我们遇到了一个奇怪的问题:compileJava任务会随机且不经常地删除META-INF文件夹和要启动的编译类,但它会运行,而processResources任务报告的是最新的,即使META-INF目录显然不存在 这给我们带来了很大的麻烦,因为这些工件可能在不使用applicationContext.xml的情况下一直进入生产阶段 对我们来说,运行该任务的成本很低,不管发生什么,是否有可能强制它运行?也许有某种无法清除gradle缓存的bug。一种可能的解决方案是首先通过运行cleanProce
对我们来说,运行该任务的成本很低,不管发生什么,是否有可能强制它运行?也许有某种无法清除gradle缓存的bug。一种可能的解决方案是首先通过运行
cleanProcessResources
强制任务清理自己的输出
如果不起作用,请尝试覆盖任务输出的UpdateWhen
谓词,如下所示:
processResources.outputs.upToDateWhen{ false }
但是我不知道这个API是否是永久性的。Gradle 1.0-milestone-5和更高版本将类文件和资源放在不同的目录中(build/classes和build/resources)。如果这能解决您的问题,而不使用变通方法,那就太好了。我当然希望是这样。太棒了。