Jar*_*red 10 java m2eclipse maven
我正在使用Maven 2.2.1和m2eclipse.
我有两个资源文件夹.
当我将更改保存到任何资源文件夹中的任何文件时,Maven增量构建将启动并将两个资源文件夹中的所有文件重新复制到目标文件夹.
如果资源文件夹中的文件数量相对较少,则此行为会很好 - 但是有足够的文件可能需要几分钟.
有没有办法强制maven在增量构建中更具选择性,只复制那些被更改的资源?
小智 8
我将问题追溯到org.codehaus.plexus.util.FileUtils.copyFile()方法.maven-resource-plugin调用此方法最终复制资源; 在的CopyFile()方法接受一个"覆盖"参数,该资源的插件确实传递(默认值是假的确实),但...
如果传递的filter-wrappers列表非空 ,copyFile()方法将忽略 'overwrite'参数!如果您的资源的过滤设置为true,则此列表确实非空.
我可以理解copyFile()忽略'覆盖'背后的原因:只是因为目标文件较新并不意味着新的过滤文件将是相同的(即资源文件中变量的值可能已经改变,因为最后一次过滤).
忽略'overwrite'标志对于FileUtils实现者来说是"方便的".但这是一个很大的代价; 不必要地更新的单个资源文件可以触发耗时但冗余的进程(即在我的情况下重建jar-with-dependencies).这可能只有几秒钟,但足以破坏密集的代码 - 编译 - 测试周期的流程.
我在FileUtils上寻找开放的bug,但没有找到任何.这让我很烦,所以我不得不把它追了下去,但我现在不能花更多的时间在这上面......几天后我想提交一份错误报告(可能会更快地实施正确的解决方案); 如果有人可以发布链接到适当的错误跟踪/报告系统,我将不胜感激.