我们经常使用 SNAPSHOT 并经常重建,并且发现即使源未更改,生成的工件也不是与上次构建的工件相同的二进制文件。
我希望他们成为。
据我从 SO 帖子中了解到,我无法再次找到它们改变的两个原因:
- JAR/WAR/etc 文件是带有额外元数据的 zip 文件,每个条目都有一个时间戳,即“组装时间”或“编译时间”。
- 签名的 jar 包含签名信息,未排序(即顺序可能在 JVM 之间更改)
我们目前不使用签名的 jars,我可以忍受 JAR/WAR/etc 文件中的所有日期戳为 0,如果这会给我带来二进制身份的话。
显然,这意味着我需要让 Maven Archiver 在组装 jar 时显式设置日期戳,但我无法在文档中找到可以设置它的位置,因此它很可能不存在。快速浏览一下 maven-jar-plugin 和 maven-war-plugin 以了解收集信息的位置并没有让我更明智地了解如何更改它。
我的问题是,我应该如何处理这个问题?