Github上的工程上传到公共Maven仓库

本文是针对的没有自己的域名,通过Github的渠道来上传至公共Maven仓库。有自己的域名的不在本文介绍范围。

在Github上创建一个工程

首先要在github上创建一个工程。注意,可见范围要选择为Public,需要审核人员能够访问这个地址。
在这里插入图片描述

然后,再完善这个Maven工程。
在这里插入图片描述

注意,建议使用com.github.[username]或者io.github.[username],其中[username]是你在github上的username。在这里插入图片描述
至此,在Github上的工作已经完成。

在issues上创建工单
创建账号

如果在issues上没有账号,可以去申请注册issues,需要注意的是,用户名建议使用全英文,不要有中文字符。
在这里插入图片描述

创建工单

按需要填写工单表格即可
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
填写完成之后,等待管理员审批即可,等待状态变成RESOLVED在这里插入图片描述

上传jar到公共Maven库
Mac电脑安装GnuPG

我的系统是MacOS的,使用brew进行安装

1
brew install gpg

安装完成后,使用gpg --version查看是否安装成功
在这里插入图片描述
使用gpg --gen-key生成密钥对
在这里插入图片描述
生成过程中,需要设置一个密码管理密钥,这个密码需要记录下来,以后使用的时候,是需要这个密码的。
使用gpg --list-keys查看公钥
在这里插入图片描述
将公钥发布到 PGP 密钥服务器,我上传了2个服务器(keys.gnupg.net和keyserver.ubuntu.com),其中708BA29F9107359C8CD3F1C1AE09D627E10FDC2D是用户ID。

1
2
gpg --keyserver keys.gnupg.net --send-keys 708BA29F9107359C8CD3F1C1AE09D627E10FDC2D
gpg --keyserver keyserver.ubuntu.com --send-keys 708BA29F9107359C8CD3F1C1AE09D627E10FDC2D

注意,可能会失败,报如下错误,此时不用紧张,先ping keys.gnupg.net服务器,然后将服务器地址换成IP即可
在这里插入图片描述
在这里插入图片描述
验证是否上传成功在这里插入图片描述

修改maven的settings.xml文件

在maven的settings.xml文件中增加如下内容。其中,[username]和[password]中填写的是你在issues中的注册账号和密码。

1
2
3
4
5
6
7
<servers> 
<server>
<id>snapshots</id>
<username>[username]</username>
<password>[password]</password>
</server>
</servers>
修改工程中的pom.xml文件

如图,id是maven的配置文件settings.xml中的id。

1
2
3
4
5
6
7
8
9
10
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>snapshots</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>

附上上传源码到仓库中的maven插件。

1
2
3
4
5
6
7
8
9
10
11
12
13
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
打包上传

使用命令打包上传。

1
mvn clean package deploy -Dmaven.test.skip=true

打包上传的过程中,签名的时候,mac下可能会报错,如下图所示:在这里插入图片描述
此时,需要在~/.gnupg文件夹下新增或者修改2个文件。
gpg.conf

1
2
use-agent
pinentry-mode loopback

gpg-agent.conf

1
allow-loopback-pinentry
发布

访问https://oss.sonatype.org/#stagingRepositories,拉到最下方,可以看见你的提交记录
在这里插入图片描述
选择上方的Close,稍等片刻他先检查一下你上传的东西是否符合规范,检查完毕后该条状态被标记为closed,
此时选中后点上面的Release即可。
然后,找到你的issues,回复审核员说你已经打包上传了,等几小时,就可以在公共maven库中找到你的jar了
在这里插入图片描述