module-info.java 不用于定义或文档化变量,其作用仅为声明模块身份、依赖关系与导出包;变量文档化需靠Javadoc注释配合exports包策略实现。

module-info.java 本身不用于定义或文档化变量,它不处理类内字段、局部变量或方法参数等具体变量。它的作用是模块级元数据声明——描述模块身份、依赖关系、导出包和服务契约。因此,不能直接用它增强“变量定义”的文档化管理。
module-info.java 的真实职责范围
它只管理以下三类模块边界信息:
-
模块名称与身份:通过
module com.example.core { ... }声明唯一模块名 -
对外可见性:用
exports com.example.api;明确哪些包可被其他模块访问 -
依赖约束:用
requires java.sql;或requires static org.junit.jupiter.api;声明编译/运行时依赖
真正影响变量文档化的其实是包导出策略
module-info.java 间接影响变量文档质量,关键在于它控制了“哪些变量能被外部看到”:
- 如果一个包未被
exports,其中所有 public 类的 public 字段(即变量)在编译期就对其他模块不可见——Javadoc 自然无法收录它们 - 只有导出包内的 public 类及其 public/static/final 变量,才可能出现在跨模块生成的 API 文档中
- 例如:
exports com.example.config;后,com.example.config.AppConfig中的public static final String VERSION = "1.2";才会被 javadoc 工具识别并渲染
配合 Javadoc 实现变量级文档强化
要让变量定义更清晰、可追溯,需将 module-info.java 与标准注释协同使用:
- 在变量声明前写标准 Javadoc 注释:
/** 当前应用主版本号,用于服务注册与健康检查 */ public static final String VERSION = "1.2"; - 确保该变量所在类位于
exports的包中,否则 javadoc 不会将其纳入模块文档 - 用
javadoc --module-path mods --module com.example.core生成文档时,工具会自动关联 module-info.java 的导出声明,只展示允许暴露的变量 - 添加
--generate-module-graph可生成模块依赖图,帮助理解某变量所属配置模块在整个系统中的定位
避免常见误解
有人误以为可在 module-info.java 里加注释说明变量用途,比如:
✘ 错误做法(语法非法,编译失败):module com.example.core {<br> // VERSION 字段表示当前发布版本,必须与Git tag一致<br> exports com.example.config;<br>}
这类注释不会被解析为任何变量文档,也不参与任何校验。模块描述符只认结构化指令(requires、exports 等),不支持语义化元数据嵌入。

















