2024年2月后如何使用maven central发布自己的jar到中央仓库

2024年2月后如何使用maven central发布自己的jar到中央仓库

在2024年2月1日,sonatype 终于放弃了原本的maven-central的注册方式, 不再支持jira 创建工单处理了 下文介绍新的maven central repository发布jar的流程

一、注册maven central账号

地址:central.sonatype.com

找到右上角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搜索可能会延迟。

相关推荐
Java爱好狂.7 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
马良神笔9 小时前
2026 年Rag最近技术前沿总结
后端·python·django
程序猿DD9 小时前
同样10美元,OpenDesign和Command Code的DeepSeek V4.1 Flash额度到底有多少?
后端
不像程序员的程序媛9 小时前
maven基础
python·pycharm·maven
高频因子挖掘机9 小时前
A股量化从日线升级到5分钟线:数据量增加后最先暴露哪些工程问题?
后端·github·api
高频因子挖掘机10 小时前
历史行情返回顺序变了,为什么按行号计算指标很危险?
后端·github·api
团子哒哒11 小时前
数组、切片和Map
后端
专注仿真11 小时前
ThinkPHP6 API接口开发实例:从零搭建RESTful风格接口
后端·php·restful
开心猴爷12 小时前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
1m5555555512 小时前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试