要在maven项目中生成-sources.jar,核心是正确配置maven-source-plugin插件:在pom.xml的中声明该插件,设置version为3.3.1+、true、绑定phase为verify,并执行mvn clean install或mvn source:jar命令。

要在 Maven 项目中生成 -sources.jar,核心是正确配置 maven-source-plugin,让它在构建过程中自动打包源码并附加到主构件上。不配插件或配错阶段,mvn install 就不会产出源码包。
1. 在 pom.xml 中声明 source 插件
把以下配置加到项目的 <build><plugins></plugins></build> 节点内(注意不是父 POM 或聚合模块,必须是具体要发布源码的子模块):
- 使用 3.3.1 或更高稳定版(兼容 JDK 17+ 和较新 Maven 版本)
-
<attach>true</attach>必须显式设为 true,否则只生成 jar 不附加 -
<phase>verify</phase>比package更稳妥——它确保源码包在部署前已就位,且不影响跳过测试等常见流程
示例配置:
<plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-source-plugin</artifactid><version>3.3.1</version><configuration><attach>true</attach></configuration><executions><execution><id>attach-sources</id><phase>verify</phase><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin>
2. 执行构建命令触发生成
仅改配置不运行命令,-sources.jar 不会出现。常用方式:
-
mvn clean install:源码包会安装到本地仓库(~/.m2/repository/xxx/xxx-version/xxx-version-sources.jar) -
mvn clean deploy:若配置了远程仓库,源码包会一并上传,供团队共享 - 单独生成(不编译、不安装):
mvn source:jar,结果在target/下,适合快速验证
执行后,检查 target/ 目录是否有 xxx-1.0.0-sources.jar;再检查本地仓库对应路径是否存在同名文件——这是最直接的判断依据。
3. 配合 IDE 实现源码关联(以 IntelliJ IDEA 为例)
IDE 不会自动下载 sources,需手动触发:
- 右键项目 → Maven → Download Sources and Documentation
- 若菜单灰掉,说明项目未被识别为 Maven 项目,检查
pom.xml是否有语法错误或缺失<packaging>jar</packaging> - 成功后,在 Project 视图的 External Libraries 中展开依赖 jar,应能看到带
src图标的节点;按住 Ctrl 点击类名即可跳转真实源码,而非反编译内容
4. 可选:同时生成 javadoc jar
如果还需文档包,可并行配置 maven-javadoc-plugin:
- 同样设
<attach>true</attach>,绑定到verify阶段 - 目标用
javadoc-no-fork(避免 fork 进程,提升稳定性) - 生成后 IDE 同样可通过 “Download Sources and Documentation” 一并拉取
源码包不是“额外功能”,而是 Java 生态协作的基础支撑。配对正确、构建到位、IDE 主动拉取,三步缺一不可。











