参考
创建OSSRH JIRA账号
创建一个新的项目票据
如图:
验证域名的所有权
顺利的话,会有人回复你,让你验证域名的所有权,一般有两种方法:
Do you own the domain qyh.me? If so, please verify ownership via one of the following methods:
Add a TXT record to your DNS referencing this JIRA ticket: OSSRH-59639 (Fastest)
Setup a redirect to your Github page (if it does not already exist)
我选择了第一种,解析记录如下:
(我创建了两个txt记录,另一个主机记录是instd4j,就是我的项目id,如果主机记录@不行的话,就再增加一个试试)
认证通过后,很快会得到回复
me.qyh has been prepared, now user(s) wwwqyhme can:
Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots
Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2
Release staged artifacts into repository 'Releases'
这样就有权限发布到它的库了
PGP
到 https://www.gnupg.org/download/ 这里下载合适的版本,windows下面傻瓜式安装即可,安装完毕之后,打开cmd,运行命令
gpg --gen-key
输入一些信息之后,会让你输入 Passphrase,记住这个,后面签名要用到
创建完之后获取key
gpg --list-keys
会有如下输出:
复制红圈内文本,然后输入命令:
gpg --keyserver keys.openpgp.org --send-keys 379C8CB6D2F83F2656B59F89A8F121861F3CADD9
通过以下命令测试:
gpg --keyserver keys.openpgp.org --recv-keys A8F121861F3CADD9
顺利的话会有如下输出:
至此pgp结束
pom文件
settings文件
如果通过maven发布,那么 settings文件还需要设置额外的凭证信息:
设置ossrh的用户名和密码
ossrh
wwwqyhme
password
设置pgp的签名密码
ossrh
true
gpg
password
发布到 snapshot
发布到snapshot很简单,甚至不需要pgp签名、sources和javadoc
cd到你的项目目录,然后运行如下命令即可
mvn clean deploy
发布到release
运行如下命令即可
mvn clean deploy -P release
这里的release不是release到maven的中央仓库,而是放到了 https://oss.sonatype.org/content/repositories/releases/ 这里,发布之后,它会进行规则校验,通过规则后才可以发布,具体的规则如下:
一般就是校验你的pom文件、souces.jar存不存在,javadoc存不存在和验证签名
关于javadoc,这个文件必须要有,如果因为注释等问题而无法生成,可以通过
none
来避免
如果pgp签名不通过,看下有没有把公钥上传到密钥服务器
release之后,需要两个小时左右,才能在 search.maven.org 上找到你的项目,如果需要在 mvnrepository.com上找到,则需要更长的时间(我等了一晚上)