上传非开源(没有sources.jar内容)的 jar 包到 MavenCentral

一、背景

本文上传编译过的代码文件到仓库中,需求是不上传源码source文件(有source的也可以用本文的方法)。

总体步骤:准备账号-》申请namespace-》打包-》登陆-》上传公钥-》上传代码文件

Maven Central 以前的关于上传jar的登陆注册页官方会进行拦截跳转,进不去了。官方说明说,自从2024年3月12日,只能通过Central Portal 来进行注册。因为本方式需要通过OSSRH的也就是Nexus Repository Manager ,但以前注册的方式没有了,所以需要通过官方邮件来帮忙处理

二、准备账号

(1)进入 Maven Central

(2)点击Sign In注册账号

注意:不要用gmail和github授权登陆,这样的情况下是不能进行注册OSSRH

(3)注册与验证账号

qq邮箱就可以了,网页版qq邮箱发送不到官方支持人员的邮箱,但是我的手机qq邮箱app可以,不知道为啥。。

(4)登陆账号

三、申请namespace

(1)点击右上角View Namespaces

不要上传代码,否则可能迁移不了到OSSRH,这是官方警告的

(2) 点击Add Namespaces

(3) 命名空间

在界面上输入倒置属于自己域名的命名空间(baidu.com倒置为com.baidu)

(4)确认

确认之后生成了一个txt,记录根据官方方式去服务器上去设置

(5)根据自己的云服务商去配置

txt配置

(6)设置完成后,可以通过命令来看

一般设置完之后,过一会就能请求后返回设置的txt信息了。

(7)等待审核

如果一直没有结果,通过(英语不好的用软件翻一下)英文邮件发送到官方支持人员,对方基本在1个工作日左右处理完然后反馈结果。

(8)注意

审核完毕后,千万不能上传jar包到现有的命名空间当中,否则可能迁移不了到OSSRH。如果说想要通过maven插件直接打包所有文件上传的话,那当我没有说。

四、打包(重点)

(1)文件

现在有个jar命名为,demo-1.0.0.jar。正常打包要包含以下文件

demo-1.0.0.jar

demo-1.0.0.jar.asc

demo-1.0.0-javadoc.jar

demo-1.0.0-javadoc.jar.asc

demo-1.0.0.pom

demo-1.0.0.pom.asc

demo-1.0.0-sources.jar

demo-1.0.0-sources.jar.asc

(2)非源码上传处理

直接新建一个空的readme.md文件,通过java命令打包成jar

bash 复制代码
jar cvf demo-1.0.0-sources.jar readme.md

jar cvf demo-1.0.0-javadoc.jar readme.md

pom就是我们的pom.xml文件,改个名称就行。

现有有了4个文件

demo-1.0.0.jar

demo-1.0.0-javadoc.jar

demo-1.0.0.pom

demo-1.0.0-sources.jar

(3)签名

在服务器上安装gpg,

Working with PGP Signatures - Documentation

并生成公私钥,然后签名,生成4个签名文件。注意保存公私钥,公钥下面还要上传到其他网站上。

bash 复制代码
gpg -ab demo-1.0.0.jar

gpg -ab demo-1.0.0-javadoc.jar

gpg -ab demo-1.0.0.pom

gpg -ab demo-1.0.0-sources.jar

(4)8个文件

如果修改了,需要对修改的文件重新签名

demo-1.0.0.jar

demo-1.0.0.jar.asc

demo-1.0.0-javadoc.jar

demo-1.0.0-javadoc.jar.asc

demo-1.0.0.pom

demo-1.0.0.pom.asc

demo-1.0.0-sources.jar

demo-1.0.0-sources.jar.asc

五、登陆

(1)登陆不了

目前https://s01.oss.sonatype.org 前面几步创建的账号是登陆不了的

(2)帮助

直接跟官方支持人员去说明要迁移到OSSRH上

Register to Publish Via OSSRH - Documentation

邮件当中说明一下几点

(3) 等待

2天左右,你的namespaces都会迁移到OSSRH当中

(4)此时通过账号可以登陆了

六、上传gpg公钥

因为OSSRH会检查当前上传文件的签名,因此需要提前上传公钥,否则会校验不通过

(1)下载公钥

下载本地或者服务器生成的公钥

(2)网站上传公钥

比如 keys.openpgp.org

上传公钥文件,并且邮件当中确认即可。选择的网站可以在OSSRH文件检查中的错误中寻找

七、上传

(1)点击Staging Upload

(2)上传pom

(3) 上传其他7个文件

先添加文件,在点击Add Artifact,重复七次

(4) 写入描述,并点击上传

(5)等个10秒钟

进去 Staging Repositories

(6)点击 refresh

(7)修改

有了文件之后,点击查看有没有上传问题,根据提示修改即可

(8)发布

全部完成后,点击Release就可以了,发布之后,过个几分钟,就可以在Maven Central 上找到了

相关推荐
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen3 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
没有bug.的程序员4 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋4 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
阿华的代码王国5 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~5 小时前
《设计模式》装饰模式
java·设计模式
A尘埃5 小时前
企业级Java项目和大模型结合场景(智能客服系统:电商、金融、政务、企业)
java·金融·政务·智能客服系统
青云交5 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
CHEN5_026 小时前
【Java基础面试题】Java基础概念
java·开发语言