Java开源项目提交到Github及发布到Maven中央仓库流程

由于工作需求最近开发了一个基于Mybatis的分库分表项目(mybatis-sharding),这个项目基于mybatis的plugin插件实现,目前第一期先实现分表,下一步计划实现分库,这个项目使用场景较多,所以准备开源并提交到中央库以便给有需求的项目使用,下面整理了整个开源项目的提交及发布流程。分以下几步:

一、开始代码开发及测试工作

        代码开发工作此处不具体详说,主要是写好注释,后面在提交Maven中央库时会校验Java Doc的代码是否规范。

二、提交到Github

1. 注册Github帐号:略

2. 创建一个开源仓库。创建仓库只需要填写好相关信息即可,如在Initialize this repository with a README处勾选会生成一个ReadMe.md的文件(这个文件是默认存放项目相关说明的文档),在后面步骤提交前需要同步合并一个再提交代码。

Java开源项目提交到Github及发布到Maven中央仓库流程

3. 生成ssh key

  3.1 检查.ssh文件夹下是否存在id_rsa和id_rsa.pub文件。Windows机器检查C盘当前用户下是否存这个文件夹以及文件;mac和linux检查当前用户下是否存这个文件夹以及文件,如果没有使用第二步的工具生成。

Java开源项目提交到Github及发布到Maven中央仓库流程

  3.2 用ssh-******工具生成。如果安装了git工具Windows下直接在文件夹下右键打开git bash在命令窗口直接使用命令生成,mac下直接使用命令。

Java开源项目提交到Github及发布到Maven中央仓库流程

  3.3 将id_rsa.pub公钥保存到github上。打开Github的settings即可增加上去。

Java开源项目提交到Github及发布到Maven中央仓库流程

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

Java开源项目提交到Github及发布到Maven中央仓库流程

三、提交代码到Maven中央库,这个过程需要sonatype审核,一般需要几天时间。

1. 注册Sonatype。注册网址:https://issues.sonatype.org/secure/Signup!default.jspa

2. 注册后创建一个issue,创建后等待回复。此处如果你使用了自己的域名,会问你是否拥有域名

Java开源项目提交到Github及发布到Maven中央仓库流程

Java开源项目提交到Github及发布到Maven中央仓库流程

3. 检查配置,包括pom、settings等

Java开源项目提交到Github及发布到Maven中央仓库流程

Java开源项目提交到Github及发布到Maven中央仓库流程

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查看是否安装成功

Java开源项目提交到Github及发布到Maven中央仓库流程

  4.3 生成**对,除输入密码外我都默认选择。

Java开源项目提交到Github及发布到Maven中央仓库流程

  4.4 运行命令gpg –list-keys查看生成的key

Java开源项目提交到Github及发布到Maven中央仓库流程

  4.5 将公钥上传到服务器,以便在后面上传代码时验证,上传完后需要用recv-keys验证是否上传成功。

Java开源项目提交到Github及发布到Maven中央仓库流程

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。

Java开源项目提交到Github及发布到Maven中央仓库流程

7. 关闭项目。首先需在close这个项目,在关闭时会有很多检查项,如果有提示错误,在找到错误原因修复后即可正常关闭。此处我遇到缺少java doc文件和验证错误都是pom文件配置问题,如果遇到这样的问题可以参考我的pom配置文件。

Java开源项目提交到Github及发布到Maven中央仓库流程

8. 发布并回复issue通知sonatype**。

Java开源项目提交到Github及发布到Maven中央仓库流程

9. 在maven中央库查看自己项目,网址:http://search.maven.org/,至此整个流程结束

Java开源项目提交到Github及发布到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