推送项目到maven中央仓库

    最近工作比较空闲,做了一些实用小工具,在本地直接引用jar包实在是不方便,所以研究了一下如何将项目推送到maven中央仓库。怕日后遗忘,所以写这篇文章记录一下,也方便朋友们借鉴。

一、将代码上传到托管平台

    这一步不必多说,想必大家都知道,git,码云,bitbucket都可以。

二、使用sonatype创建工单

    进入sonatype网站:https://issues.sonatype.org创建账号。

    完成之后可以在页面顶部看到如下画面58712b4b90f627331dac3e99fdb7a673d9e.jpg

点击新建,弹出如下对话框

推送项目到maven中央仓库_第1张图片

项目选择:Community Support - Open Source Project Repository Hosting (OSSRH)

问题类型选择:New Project

概要:对要发布的项目作一个简单的描述。

描述选填可以不写。

group id:即将要发布的maven项目的group id。

Project Url:是项目所在地址。

SCM URL:clone项目的地址。

username(s):就是你在该网站注册的用户名。

Already Synced to Centra:是否准备好同步到中央仓库,选择yes的话则会覆盖之前的构建。

填写完成后点击新建,然后等待审核。

如果你使用的是自己的域名,管理员会回复如下信息:

推送项目到maven中央仓库_第2张图片

大意就是要使用他们提供的两种方式确认一下这个域名是属于你的。如果这个域名不是你拥有的,那么可以使用他们提供的域名作为group id。

我才用的是他们提供的第一种方法,就是在域名解析添加一条解析,记录类型为TXT,主机记录设为空,记录值是JIRA ticket。

然后回复他们:Yes, this domain is mine. 就ok了(英语不好,不会写太多,简单粗暴就行)。

很快他们就会回复审核通过。

推送项目到maven中央仓库_第3张图片

三、安装GPG

    GPG下载地址:https://www.gnupg.org/download/index.html

    我是Mac,所以下载的GnuPG for OS X,下载下来安装,安装完成之后打开terminal

    输入:gpg2 --version 可以查看GPG版本

    推送项目到maven中央仓库_第4张图片

    输入:gpg2 --gen-key创建密钥对。根据提示输入姓名和邮箱地址,这两个其实不重要,重要的是一定要记住Passphase,相当于你的密码。生成成功之后会显示你的公钥信息。如果没有找到也没事,可以通过输入:gpg2 --list-keys来查询。

    找到生成好的公钥后,输入:gpg2 --keyserver http://pool.sks-keyservers.net:11371/ --send-keys 你的公钥,把公钥上传到服务器,上传成功这一步也就完成了。

三、配置Maven

    修改maven全局配置文件setting.xml,找到,在里面添加如下信息:

    
        sonatype-nexus-snapshots
        sonatype用户名
        sonatype密码
    
    
        sonatype-nexus-staging
        sonatype用户名
        sonatype密码
    

    将用户名和密码改成之前注册的sonatype的用户名密码就好了。

    由于我安装的是GPG2所以要需要在下面修改一个地方,找到,添加:

    
        gpg
        
            gpg2
            mypassphrase
        
    

    找到,添加:

    gpg

    完成后保存退出。

    在待上传的项目中的pom.xml中添加:

    
        
            The Apache Software License, Version 2.0
            http://www.apache.org/licenses/LICENSE-2.0.txt
        
    
    
        
            开发者名
            开发者邮箱
        
    
    
        scm:项目的ssh地址
        scm:项目的ssh地址
        项目地址
    
    
        
            release
            
                
                    
                    
                        org.apache.maven.plugins
                        maven-source-plugin
                        
                            
                                package
                                
                                    jar-no-fork
                                
                            
                        
                    
                    
                    
                        org.apache.maven.plugins
                        maven-javadoc-plugin
                        
                            
                                package
                                
                                    jar
                                
                            
                        
                    
                    
                    
                        org.apache.maven.plugins
                        maven-gpg-plugin
                        1.6
                        
                            
                                verify
                                
                                    sign
                                
                            
                        
                    
                
            
            
                
                    sonatype-nexus-snapshots
                    https://oss.sonatype.org/content/repositories/snapshots/
                
                
                    sonatype-nexus-staging
                    https://oss.sonatype.org/service/local/staging/deploy/maven2/
                
            
        
    

    将上面配置中的汉字内容替换为对应的信息就完成了。

四、推送到Maven中央仓库

    大功告成,可以通过deploy推送了使用下面代码推送到maven中央仓库:

mvn clean deploy -P release

    看到显示BUILD SUCCESS后就可以愉快的到中央仓库(https://oss.sonatype.org,使用sonatype账号登陆),找发布的项目了。

    当然前提是sonatype中创建的工单要审核通过,如果审核还没有通过是发布不了的,项目会在Staging Repositories菜单里。等审核通过后你需要选择你的项目,然后先点击close,顺利close之后(也就是在activity标签中没有报错信息,并且项目对应的status变为closed),再点一下release,等待release结束之后就完成了。

五、最后别忘了通知管理员关闭工单

    在之前的工单下面添加一条备注,我写的:This Component has been successfully released, thank you.(也不知道有没有语病)。等管理员审核通过关闭了这个工单就算彻底完成了。

    是不是很麻烦?没关系,只有第一次会这么麻烦,今后只要group id没有发生变化就可以直接推送,不需要在做这些繁琐的工作了。

    附maven仓库搜索地址:https://search.maven.org/,以上工序都完成后可以在这个地址搜到自己推送的组件。

------------------------------------------------------------------------

欢迎关注我的个人公众号,推送最新文章

转载于:https://my.oschina.net/jack90john/blog/3049870

你可能感兴趣的:(推送项目到maven中央仓库)