JAVA开源软件开发必备技能-发布构建到maven中央仓库

阅读更多

JAVA开源软件开发必备技能

发布构建到maven中央仓库的方法和详细步骤

  • sonatype介绍
  • 向sonatype提交申请
  • 配置maven
  • GPG签名
  • 发布版本
  • 通知sonatype

sonatype介绍

Maven项目托管在Apache上的,但是中央仓库不是Apache的资源,中央仓库是由Sonatype出资维护的。目前来说,http://repo1.maven.org/maven2/是真正的Maven中央仓库的地址。Nexus仓库就是Sonatype开发的,搭建maven私服普遍采用Nexus。

向sonatype提交申请

  • 首先需要注册sonatype,地址:https://issues.sonatype.org/browse/OSSRH-19497?filter=-2
  • 创建issue,点击Create,选择New Project JAVA开源软件开发必备技能-发布构建到maven中央仓库_第1张图片
  • 提交申请,主要填写项目简介,groupId,projectUrl,scmUrl。这里的groupId必须是自己拥有的域名,或者采用com.github.{user} JAVA开源软件开发必备技能-发布构建到maven中央仓库_第2张图片JAVA开源软件开发必备技能-发布构建到maven中央仓库_第3张图片
  • 提交申请后,sonatype的工作人员会进行审核,通过后issue的状态变为RESOLVED JAVA开源软件开发必备技能-发布构建到maven中央仓库_第4张图片

配置maven

  • 项目基本信息配置,主要包括名称,描述,github地址,开发者信息等
  • Gecco
    Easy to use lightweight web crawler
    https://github.com/xtuhcy/gecco
    
    	scm:git:https://github.com/xtuhcy/gecco.git
    	scm:git:https://github.com/xtuhcy/gecco.git
    	https://github.com/xtuhcy/gecco
    	v1.0.0
    
    
    	
    		xtuhcy
    		[email protected]
    		geccocrawler
    		http://www.geccocrawler.com
    	
    
    
    	
    		The MIT License (MIT)
    		https://raw.githubusercontent.com/xtuhcy/gecco/master/LICENSE
    	
    
     
  • 配置source、javadoc打包和gpg签名。上传maven中央库的构建必须包含源码、javadoc,并且对构件jar、源码jar、javadoc的jar进行gpg签名
  • 
    	
    		release
    		
    			
    				ossrh
    				https://oss.sonatype.org/content/repositories/snapshots
    			
    			
    				ossrh
    				https://oss.sonatype.org/service/local/staging/deploy/maven2
    			
    		
    		
    			
    				
    					org.sonatype.plugins
    					nexus-staging-maven-plugin
    					true
    					
    						ossrh
    						https://oss.sonatype.org/
    						true
    					
    				
    				
    					org.apache.maven.plugins
    					maven-release-plugin
    					
    						true
    						false
    						release
    						deploy
    					
    				
    				
    					org.apache.maven.plugins
    					maven-compiler-plugin
    					
    						1.6
    						1.6
    						UTF-8
    					
    				
    				
    					org.apache.maven.plugins
    					maven-gpg-plugin
    					
    						
    							sign-artifacts
    							verify
    							
    								sign
    							
    						
    					
    				
    				
    					org.apache.maven.plugins
    					maven-source-plugin
    					
    						UTF-8
    					
    					
    						
    							attach-sources
    							
    								jar-no-fork
    							
    						
    					
    				
    				
    					org.apache.maven.plugins
    					maven-javadoc-plugin
    					
    						UTF-8
    					
    					
    						
    							attach-javadocs
    							
    								jar
    							
    						
    					
    				
    			
    		
    	
    
     
  • 打包时只需要添加-P release即可执行上述构件jar、源码jar、javadoc的jar以及签名等一系列操作。如mvn deploy -P release
  • 配置上传账户,修改maven的setting.xml,添加刚才注册的sonatype的账号和密码
  • 
    	
    		ossrh
    		memory
    		your password
    	
    
     
  • 上述配置完成后还不能成功上传中央库,需要配置gpg签名。生成密钥。

GPG签名

  • gpg签名的主要目的就是生成公钥、私钥,并将公钥上传到gpg的密钥服务器上,之后上传maven服务器的文件都可以通过该私钥进行数字签名,以保证是您自己上传到maven服务器上的。
  • 第一步,安装gng window下载地址:https://www.gpg4win.org/download.html
  • 第二步,生成密钥 gpg --gen-key 除了用户名和邮箱已经密码,其他均可以默认 JAVA开源软件开发必备技能-发布构建到maven中央仓库_第5张图片生成密钥后,可以通过gpg --list-keys查看 密钥查看
  • 第三步,上传公钥到gpg服务器 gpg --keyserver hkp://pool.sks-keyservers.net --send-k eys 3E8E57E4 有时不成功,多尝试几次。

发布版本

一切准备就绪,发布版本,mvn deploy -P release。编译后在签名是需要提供刚才生成gpg密钥时输入的密码 JAVA开源软件开发必备技能-发布构建到maven中央仓库_第6张图片 到此,一个构件已经发布到中央库,但是能正式下载还需要sonatype的工作人员审核。

最后一步通知sonatype

回到sonatype网站的issue,回复issue,等待审核。审核通过的结果如下: JAVA开源软件开发必备技能-发布构建到maven中央仓库_第7张图片 等待2个小时,您就可以在中央库下载自己的jar了。

这里说明一下自己使用的软件环境:maven3.2.2,eclipse luna

你可能感兴趣的:(maven,中央库,gpg,开源软件,sonatype)