Maven中配置source和javadoc插件的核心是通过maven-source-plugin生成-sources.jar、maven-javadoc-plugin生成-javadoc.jar,并绑定到verify阶段自动附加;需设置UTF-8编码、关闭-Xdoclint校验,版本推荐3.3.0和3.6.3,执行mvn clean verify可验证生成效果。

在 Maven 中配置 source 和 javadoc 插件,核心是让 maven-source-plugin 打包源码(生成 -sources.jar),让 maven-javadoc-plugin 生成文档包(生成 -javadoc.jar),并确保它们在构建或部署阶段被自动附加到主构件中。
配置 source 插件打包源码
添加 maven-source-plugin 到 pom.xml 的 <build><plugins> 中,启用 jar-no-fork 目标,并绑定到 verify 或 package 阶段:
- 推荐使用
jar-no-fork,避免重复 fork JVM,提升稳定性 - 绑定到
verify阶段更稳妥,确保在 deploy 前完成源码包生成 - 插件版本建议用较新稳定版,如
3.3.0(2025 年主流)
示例配置:
<plugin><groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
配置 javadoc 插件生成文档包
maven-javadoc-plugin 要生成可被 IDE 识别的 -javadoc.jar,需注意编码与校验兼容性:
立即学习“Java免费学习笔记(深入)”;
- 必须显式设置
<encoding>UTF-8</encoding>、<charset>UTF-8</charset>、<docencoding>UTF-8</docencoding> - 添加
-Xdoclint:none关闭严格校验(尤其对未标注@param或@return的方法,避免构建失败) - 同样绑定到
verify阶段,与 source 插件保持同步
示例配置:
<plugin><groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<encoding>UTF-8</encoding>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<additionalOptions>-Xdoclint:none</additionalOptions>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>verify</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
验证是否生效
执行命令后检查输出和本地仓库:
- 运行
mvn clean verify,控制台应出现类似[INFO] Building jar: .../xxx-1.0.0-sources.jar和...-javadoc.jar - 查看
target/目录,确认两个 jar 文件存在 - 若执行
mvn deploy,这两个 jar 会随主 artifact 一同上传到远程仓库(如 Nexus、Maven Central) - 其他项目引入该依赖后,在 IDEA 或 Eclipse 中按住 Ctrl 点击类名,即可直接跳转源码或查看 Javadoc
常见问题处理
遇到中文乱码或构建失败时,优先排查:
- IDEA 用户:在 Settings → Build Tools → Maven → Runner 的 VM Options 中添加
-Dfile.encoding=UTF-8(不是 GBK,除非你明确用 GBK 编码保存源文件) - 如果项目含模块化(
module-info.java),Javadoc 可能报错,可在<additionalOptions>中追加--no-module-directories - 中央仓库要求必须签名,发布前还需配置
maven-gpg-plugin,否则-sources.jar和-javadoc.jar不会被接受



















