[Maven/Jar/Zip/时间异常] Maven 3.10.0 构建的 JAR 包的修改时间显示为 1980年,而非实际的时间(但创建时间是准确的),如何解决?
Q: Maven 3.10.0 构建的 JAR 包的修改时间显示为 1980年,而非实际的时间(但创建时间是准确的),如何解决?
问题描述
- 通过
mvn -pl xxx-modules/xxx-metadata -am clean package -DskipTests "-Dproject.build.outputTimestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)"构建的JAR包,查看了下:JAR包的修改时间不对劲,试了几次,始终是 1980年2月1日 08:00。
但创建时间是对头的。

原因分析
- 根因是当前 Maven 安装
D:\Programs\Maven\apache-maven-3.10.0自带的 super POM 默认固定了project.build.outputTimestamp:
<!-- Fixed date for reproducible build -->
<project.build.outputTimestamp>1980-02-01T00:00:00Z</project.build.outputTimestamp>
该配置位于:
D:\Programs\Maven\apache-maven-3.10.0\lib\maven-model-builder-3.10.0.jar
-> org/apache/maven/model/pom-4.0.0.xml
只要当前项目的
pom.xml里没有显式覆盖project.build.outputTimestamp,Maven 就会用这个固定值作为 jar 条目的时间戳。可以通过以下命令验证:
mvn help:evaluate -pl xxx-modules/xxx-metadata -Dexpression=project.build.outputTimestamp -DforceStdout
返回结果:
1980-02-01T00:00:00Z
- 由于
ZIP格式最早只能表示到1980年左右,1980-02-01T00:00:00Z又按本机时区Asia/Shanghai显示,所以 Windows 里最终看到的是1980/2/1 8:00:00。
以前的构建没这个问题,大概率是之前用的 Maven 版本/安装目录的
super POM没有写这个默认值,而不是电脑时间有问题。
解决方法
方案1:在项目根 pom.xml 的 <properties> 中添加空值,取消 Maven 的默认固定时间 (亲测)
<properties>
<project.build.outputTimestamp></project.build.outputTimestamp>
</properties>
这样 Maven 不再使用 super POM 里的 1980-02-01T00:00:00Z。如果环境变量 SOURCE_DATE_EPOCH 未设置,jar 会退回使用真实文件时间。
方案2:不改 pom,在 bash shell 的构建脚本中动态生成当前时间 (亲测)
mvn -pl xxx-modules/xxx-metadata -am clean package -DskipTests "-Dproject.build.outputTimestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
每次构建都会生成形如 2026-11-05T10:30:00Z 的时间,Windows 上显示为北京时间 2026-11-05 18:30:00。
方案3:如果想保留可复现构建,但不想用 1980,可以用 git 提交时间
未亲测
BUILD_TS="$(git -C /e/My-Vier-Workspace/repositories/xxx/vire-service-platform show -s --format=%cI HEAD)"
mvn -pl xxx-modules/xxx-metadata -am clean package -DskipTests \
"-Dproject.build.outputTimestamp=${BUILD_TS}"
不建议直接修改
maven-model-builder-3.10.0.jar里的pom-4.0.0.xml,因为 Maven 升级、重装或换机器都会恢复原样,而且不同环境行为不一致。
Y 推荐文献
X 参考文献
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号