Java开源项目提交到Github及发布到Maven中央仓库流程
由于工作需求最近开发了一个基于Mybatis的分库分表项目(mybatis-sharding),这个项目基于mybatis的plugin插件实现,目前第一期先实现分表,下一步计划实现分库,这个项目使用场景较多,所以准备开源并提交到中央库以便给有需求的项目使用,下面整理了整个开源项目的提交及发布流程。分以下几步:
一、开始代码开发及测试工作
代码开发工作此处不具体详说,主要是写好注释,后面在提交Maven中央库时会校验Java Doc的代码是否规范。
二、提交到Github
1. 注册Github帐号:略
2. 创建一个开源仓库。创建仓库只需要填写好相关信息即可,如在Initialize this repository with a README处勾选会生成一个ReadMe.md的文件(这个文件是默认存放项目相关说明的文档),在后面步骤提交前需要同步合并一个再提交代码。
3. 生成ssh key
3.1 检查.ssh文件夹下是否存在id_rsa和id_rsa.pub文件。Windows机器检查C盘当前用户下是否存这个文件夹以及文件;mac和linux检查当前用户下是否存这个文件夹以及文件,如果没有使用第二步的工具生成。
3.2 用ssh-******工具生成。如果安装了git工具Windows下直接在文件夹下右键打开git bash在命令窗口直接使用命令生成,mac下直接使用命令。
3.3 将id_rsa.pub公钥保存到github上。打开Github的settings即可增加上去。
4. 用Git初始化本地项目并提交。
4.1 项目初始化,命令:git init
4.2 配置Git的用户名或电子邮件
4.3 代码提交。命令:git add 和 git commit
4.4 如果前面创建仓库初始化时生成了Readme.md文件,需要先拉一下代码与本地代码合并。命令:git pull
4.5 提交代码。命令:git push
三、提交代码到Maven中央库,这个过程需要sonatype审核,一般需要几天时间。
1. 注册Sonatype。注册网址:https://issues.sonatype.org/secure/Signup!default.jspa
2. 注册后创建一个issue,创建后等待回复。此处如果你使用了自己的域名,会问你是否拥有域名
3. 检查配置,包括pom、settings等
4. PGP安装及生成**
4.1 下载PGP。打开网址https://www.gnupg.org/download/,在网上看到2.X的版本有兼容问题,我选择了下载GnuPG1.4的版本,这也是一个长期维护的版本。
4.2 将下载的文件gnupg-1.4.23.tar.bz2解压并执行./configure和make install进行安装。安装完成后运行命令gpg –version查看是否安装成功
4.3 生成**对,除输入密码外我都默认选择。
4.4 运行命令gpg –list-keys查看生成的key
4.5 将公钥上传到服务器,以便在后面上传代码时验证,上传完后需要用recv-keys验证是否上传成功。
5. 部署代码,命令:mvn clean deploy –Poss –Dmaven.test.skip=true,如果此处未安装maven,可以参考https://blog.****.net/zixiao217/article/details/78006599安装。
6. 部署成功后登录到https://oss.sonatype.org查看,登陆密码与sonatype注册密码相同,登陆后在stagging repository找到自己发布的代码,初始状态为open。
7. 关闭项目。首先需在close这个项目,在关闭时会有很多检查项,如果有提示错误,在找到错误原因修复后即可正常关闭。此处我遇到缺少java doc文件和验证错误都是pom文件配置问题,如果遇到这样的问题可以参考我的pom配置文件。
8. 发布并回复issue通知sonatype**。
9. 在maven中央库查看自己项目,网址:http://search.maven.org/,至此整个流程结束
参考网址:
https://oss.sonatype.org/#welcome
https://www.gnupg.org/download/
https://central.sonatype.org/pages/working-with-pgp-signatures.html
https://my.oschina.net/u/861925/blog/1921733
https://blog.****.net/shelldon/article/details/54291474