一、背景
本文上传编译过的代码文件到仓库中,需求是不上传源码source文件(有source的也可以用本文的方法)。
总体步骤:准备账号-》申请namespace-》打包-》登陆-》上传公钥-》上传代码文件
Maven Central 以前的关于上传jar的登陆注册页官方会进行拦截跳转,进不去了。官方说明说,自从2024年3月12日,只能通过Central Portal 来进行注册。因为本方式需要通过OSSRH的也就是Nexus Repository Manager ,但以前注册的方式没有了,所以需要通过官方邮件来帮忙处理
![](https://i-blog.csdnimg.cn/direct/84af5fea26d547ea81a3525752a8a580.png)
二、准备账号
(1)进入 Maven Central
![](https://i-blog.csdnimg.cn/direct/47ab30de85f240bc82532fb051ee706e.png)
(2)点击Sign In注册账号
注意:不要用gmail和github授权登陆,这样的情况下是不能进行注册OSSRH
![](https://i-blog.csdnimg.cn/direct/2d871aef39d8489c817579c4dc6e5f90.png)
(3)注册与验证账号
qq邮箱就可以了,网页版qq邮箱发送不到官方支持人员的邮箱,但是我的手机qq邮箱app可以,不知道为啥。。
(4)登陆账号
三、申请namespace
(1)点击右上角View Namespaces
不要上传代码,否则可能迁移不了到OSSRH,这是官方警告的
![](https://i-blog.csdnimg.cn/direct/aeb60443fb4348f48ccf41651cb2dc5d.png)
(2) 点击Add Namespaces
![](https://i-blog.csdnimg.cn/direct/e29827fad85540549dfd79a26c7cda38.png)
(3) 命名空间
在界面上输入倒置属于自己域名的命名空间(baidu.com倒置为com.baidu)
(4)确认
确认之后生成了一个txt,记录根据官方方式去服务器上去设置
![](https://i-blog.csdnimg.cn/direct/5bfb6eb0947643c6a148ab5ae5952b74.png)
![](https://i-blog.csdnimg.cn/direct/d67775c4d4554020913104bc7aec6fca.png)
(5)根据自己的云服务商去配置
![](https://i-blog.csdnimg.cn/direct/21f8308d6d024ead93b6ca1f79b818d8.png)
(6)设置完成后,可以通过命令来看
![](https://i-blog.csdnimg.cn/direct/a2f8a4cf8a554068b16645cd9e57cd08.png)
一般设置完之后,过一会就能请求后返回设置的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,
![](https://i-blog.csdnimg.cn/direct/7983cada23654c928e885f42a96605c8.png)
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 前面几步创建的账号是登陆不了的
![](https://i-blog.csdnimg.cn/direct/650981c5e65d44d989bdd3de52d8bfc4.png)
(2)帮助
直接跟官方支持人员去说明要迁移到OSSRH上
Register to Publish Via OSSRH - Documentation
邮件当中说明一下几点
(3) 等待
2天左右,你的namespaces都会迁移到OSSRH当中
(4)此时通过账号可以登陆了
![](https://i-blog.csdnimg.cn/direct/8e4ca127340c456bb8eec7e8e11e2d0b.png)
六、上传gpg公钥
因为OSSRH会检查当前上传文件的签名,因此需要提前上传公钥,否则会校验不通过
(1)下载公钥
下载本地或者服务器生成的公钥
(2)网站上传公钥
上传公钥文件,并且邮件当中确认即可。选择的网站可以在OSSRH文件检查中的错误中寻找
![](https://i-blog.csdnimg.cn/direct/afb15f851667406cafe0bc9c1ffb5a7e.png)
七、上传
(1)点击Staging Upload
(2)上传pom
![](https://i-blog.csdnimg.cn/direct/58607e11d91c41a193f5c1123d194425.png)
(3) 上传其他7个文件
先添加文件,在点击Add Artifact,重复七次
![](https://i-blog.csdnimg.cn/direct/8028f813c85548bd948d3eea06af4df8.png)
(4) 写入描述,并点击上传
(5)等个10秒钟
(6)点击 refresh
![](https://i-blog.csdnimg.cn/direct/255ecff70d4b40f294597ac59b12f88d.png)
(7)修改
有了文件之后,点击查看有没有上传问题,根据提示修改即可
(8)发布
全部完成后,点击Release就可以了,发布之后,过个几分钟,就可以在Maven Central 上找到了