2024年2月后如何使用maven central发布自己的jar到中央仓库
在2024年2月1日,sonatype 终于放弃了原本的maven-central的注册方式, 不再支持jira 创建工单处理了 下文介绍新的
maven central repository
发布jar的流程
一、注册maven central
账号
找到右上角view Account
创建用户token
点击后会生成user token
,后续会在maven的settings.xml中配置server使用。
二、验证namespace
若果在第一步注册时使用的GitHub账号登录,会自动生成一个验证通过的namespace。
这是几种namespace的命名示例
以gitee为例,访问主页url后的就是myusername命名空间就是: io.gitee.wyaoao
然后点击验证,网站会给你一个仓库名称,让你在自己的gitee上新建一个公开的仓库来做验证。名称必须网站给的一致。
三、配置GPG
为了对发布的 jar 包进行签名,你需要生成 GPG 密钥对
- 安装并配置 GnuPG环境变量:
gpg --version
检查是否已安装,未安装则需下载安装https//www.gnupg.org/download/ - 生成密钥对:
gpg --gen-key
,根据提示操作。 - 将公钥上传至公钥服务器:
gpg --keyserver keyserver.ubuntu.com --send-keys <your-key-id>
。
有时执行上传命令会失败可尝试跟换密钥域名
keyserver.ubuntu.com
keys.openpgp.org
pgp.mit.edu
还是有问题的话直接导出公钥进行上传。
四、项目maven插件引入
官方要求必须包含 源码 ,javadoc ,gpg加密
xml
<build>
<plugins>
<!-- central发布插件 -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.4.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<tokenAuth>true</tokenAuth>
</configuration>
</plugin>
<!-- source源码插件 官方要求 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- javadoc插件 官方要求 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<configuration>
<!-- 没有配置环境变量,可知道GnuPG路径 -->
<executable>C:\Program Files (x86)\GnuPG\bin\gpg.exe</executable>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后在 maven的settings.xml中配置第一步 生成的user token
其中server 的id与
central-publishing-maven-plugin
插件中的publishingServerId一致即可
然后执行deploy命令
bash
mvn clean deploy
最后在Deployments发布,等在发布成功就可以了。同步到第三方maven搜索可能会延迟。