
在将java项目发布到maven中央仓库(如通过sonatype ossrh)时,开发者常会遇到一个问题:项目成功部署后,但在ide中导入该依赖时,却无法查看其javadoc或源码。这通常不是因为javadoc没有生成,而是因为它们没有作为独立的jar包正确地附加到构件中,或者部署流程因缺少必要签名而失败。本教程将提供一个完整的解决方案,确保您的项目在部署后能够正确显示javadoc和源码。
要成功将项目部署到Maven中央仓库并确保Javadoc和源码可用,主要有以下几个关键点:
GPG签名是部署到Sonatype OSSRH的强制要求。您需要先生成一对GPG密钥。
生成GPG密钥:
gpg --full-generate-key
按照提示输入密钥类型、密钥大小、有效期、用户ID(姓名和邮箱)以及密码。
立即学习“Java免费学习笔记(深入)”;
生成密钥后,您可能需要将公钥发布到密钥服务器,以便其他人可以验证您的签名。
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys <您的密钥ID>
这是解决Javadoc和源码缺失问题的核心步骤。在项目的pom.xml文件中,您需要添加或修改以下插件配置,确保在构建和部署过程中生成并附加源码JAR、Javadoc JAR,并对所有构件进行签名。
<build>
<plugins>
<!-- Maven Source Plugin: 附加源码JAR包 -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version> <!-- 推荐使用最新稳定版本 -->
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal> <!-- 使用jar-no-fork避免重复构建 -->
</goals>
</execution>
</executions>
</plugin>
<!-- Maven Javadoc Plugin: 附加Javadoc JAR包 -->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</version> <!-- 推荐使用最新稳定版本 -->
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 指定JavaDoc的源版本,与项目保持一致 -->
<source>16</source>
<!-- 如果有私有或内部API,可以配置跳过错误 -->
<!-- <failOnError>false</failOnError> -->
<!-- <doclint>none</doclint> -->
</configuration>
</plugin>
<!-- Maven GPG Plugin: 对构件进行签名 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version> <!-- 推荐使用最新稳定版本 -->
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase> <!-- 在verify阶段执行签名 -->
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 其他构建插件,例如编译器插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>16</source>
<target>16</target>
</configuration>
</plugin>
</plugins>
</build>配置说明:
在pom.xml中,您还需要定义distributionManagement部分,指向Sonatype OSSRH的快照和发布仓库。
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>请确保这里的<id>ossrh</id>与您在~/.m2/settings.xml文件中配置的Sonatype认证服务器ID一致。
完成上述配置后,您可以通过以下Maven命令来执行部署:
mvn clean deploy
在执行mvn deploy时,maven-gpg-plugin会提示您输入GPG密钥的密码。
部署成功后,构件会被上传到Sonatype OSSRH的临时(Staging)仓库。您需要登录到Sonatype Nexus Repository Manager UI(通常是https://s01.oss.sonatype.org/),进行以下操作:
通过遵循本教程中的步骤,您将能够成功地将您的Maven项目部署到Maven中央仓库,并确保所有用户都能方便地访问其Javadoc文档和源代码。
以上就是Maven项目部署中央仓库:确保Javadoc和源码完整上传的指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号