我发现在使用 maven 程序集插件创建 .tar.gz 存档时,正在存档的文件的时间戳没有被保留。相反,它们被标记为存档创建时间。这不是 tar 的行为方式。
我在 maven 网站上找不到任何关于此的文档,我很惊讶它没有被更多提及。
还是我错过了一些明显的东西?
我对插件源代码进行了快速概述,虽然我可能遗漏了一些东西,但似乎源代码都围绕包含/排除和目录管理,并提供了一些权限。所有文件复制方法都过滤为流副本,我敢打赌,一旦将文件打开到流中,他们就会忘记所有文件属性,例如时间戳,因此无法复制它们。
我希望我错了。
如果做不到这一点,在 Maven 环境中操作时,我还能如何保留时间戳?
更新:
一个Jira 问题就此打开。事实证明,时间戳通常由插件保留,除非您指定 <lineEnding> 标记。这些是由插件中的一个例程实现的,该例程读取原始文件,转换行尾,并写入一个新文件。在这种情况下,保留原始日期显然并不容易。他们没有承诺快速修复,但讨论了一些可能的修复方法。