发布Artifact到Maven中央仓库

1. 在GitHub上创建仓库,提交代码

2. 使用Github账号登录Travis CI平台,执行构建操作(optional)

要执行这一步,需要在源代码中再添加一个.travis.yml配置文件,具体参考:https://docs.travis-ci.com/user/getting-started/

理论上每次提交代码都会执行Build,所以不需要手动触发,我的实例:https://travis-ci.org/linus87/ebaysdk

3. 注册sonatype账号

https://issues.sonatype.org/secure/Dashboard.jspa 

4. 在Dashboard上创建一个Issue

Project选择:Community Support - Open Source Project Repository Hosting

Issue Type选择:New Project

其他必填的有:Project URL,GIT URL, GroupID(参考http://central.sonatype.org/pages/choosing-your-coordinates.html),Summary。

Dashboard中有很多例子,随便参考一个即可,比如我的https://issues.sonatype.org/browse/OSSRH-42964

等待Sonatype的工作人员审核处理,等Ticket变成RESOLVED之后(这一步很快,最快可能只需几分钟),就可以进行下一步操作了。

5. 配置Maven

在工程的pom.xml文件中,引入Sonatype官方的一个通用配置oss-parent,这样做的好处是pom.xml的发布配置不需要自己配置了:

 
    org.sonatype.oss 
    oss-parent 
    9 

添加License,SCM和Developers信息


	
		COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) VERSION 1.0
		https://github.com/linus87/ebaysdk/eBaySDKLicense
		repo
	


	master
	[email protected]:linus87/ebaysdk.git
	scm:[email protected]:linus87/ebaysdk.git
	scm:[email protected]:linus87/ebaysdk.git


	
		linus_yan
		[email protected]
		linus87
	

6. 配置Repository Server

修改maven配置文件setting.xml,在servers中增加server配置。这里的账户名和密码就是第三步注册的账户和密码。

这里的构建仓库是https://oss.sonatype.org,是正式发布前的一个过段仓库。使用Maven提交后的Jar包必须先到这个库中,然后才能提交到中央仓库。

 
    
        sonatype-nexus-snapshots 
        Sonatype 账号 
        Sonatype 密码
     
    
        sonatype-nexus-staging
        Sonatype 账号
        Sonatype 密码
    


7. 使用GPG生成非对称秘钥。

如果是windows,推荐下载gpg4win: https://www.gpg4win.org/download.html。安装后再命令行中输入gpg --gen-key。过程中输入名字和邮箱等,记住Passphase,这是秘钥的密码。如果你用的是eclipse,安装完成之后需要重启eclipse。

Mac系统可以下载GPG Suite:https://gpgtools.org/。也可以安装gnupg,我就是安装的gnupg(用homebrew安装的)。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

$ brew install gnupg

8. 部署到sonatype仓库

在完成第七步之后,在你本地装有gpg环境的命令行下输入下面这个命令,部署就算完成了。

mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=密钥密码"
  • 如果你是在MAC上操作,需要在mvn前添加sudo,因为gpg需要读取文件获取秘钥。
  • 你可能碰到这个错:gpg: signing failed: Inappropriate ioctl for device,打开~/.bash_profile,添加这个环境变量:export GPG_TTY=$(tty)
  • 但如果你是用过的Eclipse插件,应该这样配置(sonatype-oss-release位于org.snotype.oss:oss-parent:9.pom中)。但有可能不成功,因为Eclipse默认的Terminal可能没有gpg命令可以使用。

 

9. Release

打开https://oss.sonatype.org/#stagingRepositories,选中刚才发布的构建,点击上发的close按钮,并确认。当Activity变为closed之后(或刷新之后,Status为closed),点击Release按钮并确认。等半天之后,应该能在中央仓库看到Release的Artifact了。

10. 把gpg public key发送到keyserver

gpg --keyserver https://keyserver.ubuntu.com --send-keys A73C15B8689A6FA4

你可能感兴趣的:(版本控制,build,架构)