root@ubuntu:/home/zuul# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/C3A2E383 2019-08-27
uid liusheng (liusheng's gpg key for maven repo) <liusheng2048@gmail.com>
sub 2048R/0E79AACE 2019-08-27
用生成好的gpg key签名文件:
gpg -ab phantomjs-2.1.1-linux-aarch64.tar.bz2
验证文件签名:
root@ubuntu:/home/phantomjs# gpg --verify phantomjs-2.1.1-linux-aarch64.tar.bz2.asc
gpg: assuming signed data in `phantomjs-2.1.1-linux-aarch64.tar.bz2'
gpg: Signature made Tue Aug 27 12:19:07 2019 UTC using RSA key ID C3A2E383
gpg: Good signature from "liusheng (liusheng's gpg key for maven repo) <liusheng2048@gmail.com>"
背景
在尝试在aarch64的虚拟机上执行Hadoop YARN的测试用例时候,会发现缺少
PhantomJS
包,导致用例失败,Hadoop所引用的该软件包,没有对应于ARM64
平台的release,于是,尝试在建立私有Maven仓库来发布对应于ARM平台的包。环境信息:
1. 在Sonatype上创建issue
为了在Maven上面创建自己的软件包仓库,需要在
Sonatype
的JIRA页面上提交一个issue,创建Issue的信息可以参照下图中的信息,主要包括Issue type
,Group Id
,Project URL
,SCM url
等信息。注意创建的时候类型选择OSSRH。提交好Issue以后,稍等一会儿,可以发现系统提示你在自己的github仓库里面创建一个临时的repo用于验证是否管理权限。完成以后,恢复评论,可以发现Issue的状态变为已解决
注意: 这里使用的是github仓库域名作为
Group Id
,若使用的是其他类型的域名,验证权限的方式可能有所不同。在Maven stagging仓库可以看到已上传包。
生成GPG 公私钥:
一路回车用默认值即可,需要填上自己的用户名、邮箱等信息。
查询生成的gpg公私钥:
用生成好的gpg key签名文件:
验证文件签名:
导出公私钥并保存:
将公钥发布到keyserver上
从上面的keyserver上获取自己已经上传的public key