该文档用于在Maven Central 发布自己的开源库。
一、注册Sonatype Nexus账号:
官网地址为:https://issues.sonatype.org
1.创建账号,并登录。
在该网站创建账号并登录。Snoatype为maven的仓库管理软件。在该网站上创建仓库是通过创建一个Issue的方式。
登录之后,开始创建Issue.
2.创建Issue
点击顶部的导航栏中的"Create",会出现以下视图:
关于创建Issue的几点说明:
- Project:在这里选择“Community Support - Open Source Project Repository Hosting (OSSRH)”
- Issue Type:选择“New Project”
- Summary:可以填写项目名称
- Description:填写项目的描述;
- Attachment:可以不填写
- Group Id:必须填写,而且需要填写正确。在这里提示下填写规则,这个可以是你的域名,如果没有那么可以参考你的项目的地址进行填写。例如“https://github.com/ZhangXinmin528/chuck”那么我在这里填写的是“io.github.zhangxinmin528.chuck”,如果随便填写就会导致后面的审核不会通过,你就不能上传你的项目。
- Project URL:为你的项目地址,例如“https://github.com/ZhangXinmin528/chuck”
- SCM url:为你的项目仓库地址,例如“https://github.com/ZhangXinmin528/chuck.git”
- Userame(s):用于上传你的项目的名字,最好使用JIRA的登录名,方便使用。
填写完毕之后就可以点击“Create”了,会有管理员审核你的“Issue”.
例如,
当然如果审核通过,此Issue的状态会变成“RESOLVED”,如果审核不通过,状态为“WAITING FOR RESP…”也就是不符合规定,管理员会在下方告诉你需要修改的地方。如
这是我第一次申请的情况,真的很痛苦😄。那么你就需要继续修改。在这里友情提示一下啊。就是github创建的仓库最好能使用这个Issue的id就行命名,否则会审核不通过。
这些搞定之后就是生成秘钥,并上传服务器了。
二、使用GPG签名工具,生成和上传秘钥。
- 对于Mac设备可以访问Gnupg(https://www.gnupg.org/download/index.html?spm=a2c6h.12873639.0.0.cefd5752tNdPpd) 地址进行下载安装。
- 使用Windows设备的可以访问http://gpg4win.org/下载安装。
这里我通过mac环境给大家进行讲解。使用终端依次执行以下命令:
1.生成秘钥,使用命令“gpg --gen-key”
过程中根据命令行提示输入“userId”,邮箱,最后一步输入“o”之后会弹出一个对话框提示输入密码,这是你签名的密码,后面上传的时候需要使用。后面会在终端打印一堆串码。你需要记住后8位。
2.创建秘钥文件,使用命令“gpg --export-secret-keys -o secring.gpg”
secring.gpg就是导出的秘钥签名文件,这一步会将文件导出到你的电脑用户的根目录中。
3.列出所有秘钥,使用命令“gpg --list-keys --keyid-format SHORT”(可以不进行)
4.提交秘钥到服务器,使用命令"gpg --keyserver hkp://pool.sks-keyservers.nt --send-keys 8位短秘钥(图片中马赛克内容)"
执行成功即可,否则,后面库传到maven会找不到秘钥文件。
三、配置你的工程,开始上传开源库;
关于这部分的操作,必须在“Issue”审核完成才可以进行。可以参考官方文档(https://central.sonatype.org/publish/publish-gradle/) 中的描述进行配置。这里需要注意证书的配置!需要你将证书的配置信息填写在项目的“gradle.properties”中,同时将秘钥文件“secring.pgp”放置在项目中。需要完善以下信息:
signing.keyId=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile
ossrhUsername=your-jira-id
ossrhPassword=your-jira-password
配置完成之后,可在Android Studio 中的Gradle脚本中点击上传对应的task,如果参考了官方文档,则上传的task为“uploadArchives”,上传成功后可在 Nexus repository manager(https://s01.oss.sonatype.org/index.html#welcome) 中使用“sonatype”,也就是JIRA账号登录即可。
四、开源库的发布
登录成功之后,你上传的开源库只是处于暂存状态。需要你进行发布操作。如下图
点击图示位置,可以看到已经上传的开源库。起始状态需要你点击“Close”按钮,此操作会校验你的秘钥,校验成功之后,会展示“Release”按钮。点击即可发布你的开源库。稍等就可以在项目中进行引用了。
五、开源库的引用
在项目的“build.gradle”文件中添加
repositories {
mavenCentral()
}
同时添加
repositories {
maven {
url "https://repo1.maven.org/maven2"
}
}
如下图所示:
即可在“dependencies”中添加发布的依赖。