You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java JAR清单文件是否有约定的属性集合及规范?

JAR清单文件的命名与约定规范

一、官方标准清单项

Java官方在JAR规范里明确定义了一批标准清单项,这些有固定命名,手写时建议优先放在清单靠前位置:

  • Implementation-Title:JAR包的实现名称
  • Implementation-Version:JAR包的实现版本
  • Implementation-Vendor:实现提供商
  • Specification-Title:关联的规范名称
  • Specification-Version:规范版本
  • Specification-Vendor:规范提供商
    这些项的命名是统一的官方约定,所有主流构建工具都会遵循,建议按上面的顺序排列,方便其他人阅读。

二、常用扩展项的约定写法

对于官方没定义但常用的扩展项,行业里已经形成了基于主流构建工具的约定:

构建日期/时间戳

更常用的写法是**Build-Timestamp**,比如Maven的maven-jar-plugin默认生成的就是这个键,格式一般用ISO 8601标准(比如2024-05-20T14:30:00Z);Build-Date属于早期的非标准化写法,现在基本被Build-Timestamp取代,因为后者明确包含时间信息,精度更高。

其他常见扩展项

  • Built-By:执行构建的用户名
  • Created-By:构建工具的信息(比如Apache Maven 3.9.6)
  • Main-Class:可执行JAR的主类全路径
  • Class-Path:依赖JAR的类路径

三、排序与编写原则

  1. 先放官方标准项,再放自定义扩展项
  2. 同类项集中放置(比如所有Implementation-*项放在一起,所有Build-*项放在一起)
  3. 键名统一用驼峰+连字符的格式,别用下划线或全小写,这是所有主流工具都遵循的风格

四、参考Maven等构建工具的约定

像Maven、Gradle这类工具,对清单项的生成有明确的默认规则,手写时直接参考就行:

  • Maven的maven-jar-plugin默认生成的清单顺序:Created-By → Build-Jdk → Built-By → Build-Timestamp → 各类Implementation-*/Specification-*项
  • 手动编写时照搬这个顺序和命名,能保证和自动化构建的JAR清单风格一致,后续维护起来更方便

内容的提问来源于stack exchange,提问作者opticyclic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:27:28