0

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

有人有想法吗?

让我添加更多详细信息,因为我需要此功能。

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

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

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

4

2 回答 2

1

好吧,最好的解决方案是调整计算差异的工具,以便在 jar 中更深入地查看;)

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

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

嗨,M。

于 2012-07-23T15:25:34.240 回答
0

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

我不会碰 maven 构建,让它像以前一样构建罐子。

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

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

我希望这很有用。

于 2012-07-28T19:41:28.440 回答