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插件引入

官方要求必须包含 源码javadocgpg加密

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搜索可能会延迟。

相关推荐
阳光是sunny7 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦7 小时前
GO_并发编程---定时器
开发语言·后端·golang
阳光是sunny7 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
皮皮林5517 小时前
开源实力派,给本地 AI 装上深度调研能力,一张 3090 跑到 95.7 分!
后端
努力的小雨8 小时前
把 Windows 桌面图标做成一个会自己运转的小世界
后端
武子康9 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
腾渊信息科技公司9 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
IT_陈寒10 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端
段一凡-华北理工大学11 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
码事漫谈11 小时前
1999年的电商前夜和2026年的AI前夜 历史押韵但从不重复
后端