maven在包装jar之前设置类时间戳

时间:2012-07-22 06:25:03

标签: maven

我想在maven模块中设置类和资源的时间戳,就在它内置到jar之前。 我想我可以使用maven-antrun-plugin,但我想看看是否有更好的想法。

有没有人有想法?

让我添加更多细节,因为我需要这种能力。

当我们为产品构建新版本时,我们还构建了一个补丁安装,它将先前构建的所有工件与当前构建进行比较,并仅打包不同的构件。

Jars(以及任何基于zip的存档)可能具有相同的内容,但类和资源的时间戳是元数据的一部分,并导致diff显示jar不同(实际上,内容相同)。我想破解jar包装并将所有类的时间设置为常量(如1/1/2000 00:00)。

我希望这能解释我的需要。

2 个答案:

答案 0 :(得分:1)

嗯,最好的解决方案是调整计算差异的工具,让你更深入地了解jar;)

我担心除了使用带有touch任务的ant文件重置文件日期之外别无他法。没有现有的插件可以设置文件日期。

您也可以编写自己的maven插件并将其贡献给社区,但这可能有点矫枉过正......

HIH 微米。

答案 1 :(得分:0)

我只想分享我决定做的事情。

我不会触摸maven构建,让它像以前一样构建jar。

我所做的是在我的构建中实现一个脚本来比较jar。这个脚本的逻辑很简单:

  • 检查参数(罐子存在)
  • 将jar解压缩到临时文件夹(具有唯一名称)
  • 在两个文件夹上运行差异
  • 清理
  • 使用相关的退出代码退出(如果相同则为0。如果不同则为1)

我希望这很有用。