讲师中心 微信公众号
AI工具推荐 视频效率加速

如何为 Java 库 JAR 文件正确生成并分发 Javadoc

秋杰酱_2246

秋杰酱_2246

发布时间:2026-02-07 16:26:35

|

685人浏览过

|

来源于php中文网

原创

如何为 Java 库 JAR 文件正确生成并分发 Javadoc

java 库的 jar 文件本身不包含 javadoc(仅含编译后的字节码),文档需单独生成并以 *-javadoc.jar 形式发布;ide(如 intellij)通过约定命名自动关联,实现悬停提示与源码跳转。

在 Java 生态中,一个专业、可协作的库(Library)不仅需要提供功能完备的 .jar(含 .class 文件),还必须配套提供可被 IDE 识别的 Javadoc 和源码支持——但这三者(主 JAR、Javadoc JAR、Sources JAR)是物理分离、逻辑协同的三个独立构件,而非打包进同一个 JAR 中。

✅ 正确做法:三件套分离发布

标准 Maven/Gradle 构建流程会生成以下三个 JAR 文件(命名遵循约定):

文件名示例 用途 是否必需
mylib-1.0.0.jar 运行时字节码(核心功能) ✅ 必须
mylib-1.0.0-sources.jar 原始 .java 源文件(支持 IDE 跳转) ⚠️ 强烈推荐
mylib-1.0.0-javadoc.jar 生成的 HTML 文档(经 javadoc 工具编译) ⚠️ 强烈推荐
? 为什么不能把 Javadoc 编译进主 JAR? 因为 Javadoc 是纯注释内容(/** ... */),在 javac 编译过程中不会生成任何字节码,也不会嵌入 .class 文件。它本质是独立的 HTML/JS/CSS 静态资源集,体积可能远超主 JAR —— 强行合并将显著增大部署包,违背“运行时最小化”原则(类似 C/C++ 的 .so/.dll 不含 Doxygen 文档)。

? 示例:使用 Maven 自动生成三件套

在 pom.xml 中添加以下插件配置:

<build>
  <plugins>
    <!-- 生成 Sources JAR -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>3.2.1</version>
      <executions>
        <execution>
          <id>attach-sources</id>
          <goals><goal>jar-no-fork</goal></goals>
        </execution>
      </executions>
    </plugin>

    <!-- 生成 Javadoc JAR -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>3.5.0</version>
      <executions>
        <execution>
          <id>attach-javadocs</id>
          <goals><goal>jar</goal></goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

执行命令打包:

storage-analyzer-windows
storage-analyzer-windows

【做什么】纯 Windows 只读存储分析 — 扫描 12+ 组目标(含 Installer/ProgramData/回收站)→ 三灯分级(🟢可自动清/🟡需判断/🔴建议卸载)→ 交互式 HTML 报告 + 本地服务一键删。 【何时用】用户抱怨磁盘空间不足、要求清理/分析/查看空间占用、想知道什么东西吃硬盘。 【触发词】磁盘满了/C盘满了/D盘满了/空间不够/清理空间/清理磁盘/清理C盘/占空间/ 存储分析/磁盘分析/看一下存储/电脑空间/storage analysis/disk cleanup/清缓存/

下载

立即学习“Java免费学习笔记(深入)”;

mvn clean package
# 输出目录 target/ 下将包含:
# mylib-1.0.0.jar
# mylib-1.0.0-sources.jar
# mylib-1.0.0-javadoc.jar

? IntelliJ 中的自动识别机制

当你的团队成员将 mylib-1.0.0.jar 添加为项目依赖后,只需确保同目录下存在对应命名的 -sources.jar 和 -javadoc.jar(或通过 Maven 仓库自动下载),IntelliJ 会自动关联:

  • 将鼠标悬停在类/方法上 → 显示 Javadoc 内容(来自 -javadoc.jar)
  • 按 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)→ 跳转至源码(来自 -sources.jar)
  • 无需手动配置,前提是命名严格匹配(如 xxx-1.2.3-javadoc.jar)

⚠️ 注意事项:

  • Javadoc 注释必须使用标准 /** ... */ 格式,并包含 @param、@return 等有效标签,否则生成内容为空;
  • 若使用模块化(module-info.java),需在 javadoc 插件中启用 --module-path 支持;
  • 发布到私有 Maven 仓库(如 Nexus/Artifactory)时,三件套会一并上传,下游依赖自动拉取全部资源;
  • 切勿将 .java 源文件直接打包进主 JAR(如你尝试的“源码 JAR”误用),这会导致 NoClassDefFoundError 或类加载冲突。

✅ 总结

构建一个真正“开箱即用”的 Java 库,关键在于理解“运行时”与“开发时”资源的职责分离:主 JAR 专注执行,Javadoc JAR 和 Sources JAR 专注开发者体验。遵循 Maven/Gradle 的标准三件套实践,配合 IDE 的智能识别机制,即可让协作者零配置享受完整文档与源码导航——这才是工业级 Java 库交付的正确姿势。

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

3920

2025.09.15

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

369

2026.05.09

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4644

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6037

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2482

2024.11.28

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

4016

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

306

2025.12.06

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4456

2023.06.20

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6万人学习

CSS教程
CSS教程

共754课时 | 98.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn