mac发布项目到maven中央仓库

1.环境准备

mac系统

maven

java

2.注册 Sonatype 账号

Sonatype官网:http://www.sonatype.org/
注册地址:https://issues.sonatype.org/secure/Signup!default.jspa
oss地址:https://oss.sonatype.org

登录 Sonaytype Jira 创建一个 issue
创建一个 issue

Project 选择 Community Support - Open Source Project Repository Hosting (OSSRH)
Issue Type 选择 new Project
Summary 输入你的 项目介绍
GroupId 填写你的工程使用的 groupId,如 io.github.xxx,如果是其他,必须是自己的域名,必要时,管理员会要求你用填写域名的邮箱发送验证邮件来证明域名是你的;
其他不用填写,直接点击 Create,创建一个 issue
接下来就是等待回复了;

mac发布项目到maven中央仓库_第1张图片

审批通过之后,会回复你这样的内容

mac发布项目到maven中央仓库_第2张图片

 3.更新本地 Maven 的 setting.xml 文件


     ossrh
     刚注册的用户名
     密码
    

添加setting.xml添加profile

    
      ossrh
      
        true
      
      
        gpg2
        the_pass_phrase
      
    

4.生成 GPG 签名

下载安装gpg2

生成gpg2签名

$ gpg2 --gen-key

# 接下来会要求输入 username 和 email,请对号入座,确认信息之后会弹出一个 shell 对话框,要求输入签名秘钥passphrase,输入一个自己记得住的秘钥,一定要记下来,以后每次 deploy 都会使用到。确认后完成签名的生成。

pub   rsa2048 2019-04-25 [SC] [有效至:2021-04-24]
      4140A213ED5136AB8130E3E0B66F18CEA315F945
uid                      yingxiaoyong <[email protected]>
sub   rsa2048 2019-04-25 [E] [有效至:2021-04-24]

其中4140A213ED5136AB8130E3E0B66F18CEA315F945 这个是我们后面要用到的公钥key
# 上传 GPG 公钥到秘钥服务器
$ gpg2 --keyserver hkp://pool.sks-keyservers.net --send-keys 公钥ID
 
# 通过下面的命令验证是否上传成功
$ gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 公钥ID

5.修改pom.xml文件



    4.0.0

    io.github.yxylemon
    excel-boot
    1.1.RELEASE

    
        org.sonatype.oss
        oss-parent
        9
    

    
        
            The Apache Software License, Version 2.0
            http://www.apache.org/licenses/LICENSE-2.0.txt
            repo
        
    

    
        https://github.com/yxylemon/excel-boot
        https://github.com/yxylemon/excel-boot.git
        https://github.com/yxylemon/excel-boot
    
    
        
            yingxiaoyong
            [email protected]
            https://github.com/yxylemon/excel-boot
        
    

    
        
        
            org.apache.poi
            poi-ooxml
            4.0.1
        
        
            org.apache.poi
            poi-ooxml-schemas
            4.0.1
        
        
        
            xerces
            xercesImpl
            2.12.0
        
        
        
            org.projectlombok
            lombok
            1.18.4
            provided
        
        
        
            javax.servlet
            servlet-api
            3.0-alpha-1
            provided
        
        
        
            org.slf4j
            slf4j-api
            1.8.0-beta2
        
        
        
            com.google.guava
            guava
            27.0.1-jre
        
    

    
        
            ossrh
            https://oss.sonatype.org/content/repositories/snapshots
        
        
            ossrh
            https://oss.sonatype.org/service/local/staging/deploy/maven2/
        
    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.6
                    1.6
                    UTF-8
                
            
        
    

    
        
            release
            
                

                    
                        org.apache.maven.plugins
                        maven-source-plugin
                        2.1.2
                        
                            
                                attach-sources
                                
                                    jar
                                
                            
                        
                    

                    
                        org.apache.maven.plugins
                        maven-javadoc-plugin
                        2.10.1
                        
                            
                                attach-javadocs
                                
                                    jar
                                
                            
                        
                    
                    
                        org.apache.maven.plugins
                        maven-gpg-plugin
                        1.5
                        
                            
                                sign-artifacts
                                verify
                                
                                    sign
                                
                            
                        
                    
                
            
        

    

其中scm,developer修改成自己的地址,plugins中source,javadoc,gpg是必须的

发布构建到 Sonatype

我 pom.xml 里面定义的 profiles id 为“release”,所以我执行下面的 Command

$ mvn clean deploy -P release

## 过程中会要求输入前面生成 GPG 秘钥的 passphrase,输入即可

如果不出意外,整个过程将会一帆风顺,刷过几屏日志之后,本地 Maven 构架就已经上传到 Sonatype 的 OSS 暂存仓库上了,注意只是StagingRepositories,还没有到中央仓库;

这是就可以登录 https://oss.sonatype.org/ 查看了
点击 左侧菜单栏当中的 Staging Repositiries,在右上角的搜索框中输入自己的 groupId 进行模糊检索;找到自己刚才 deploy 的构建;
Staging Repositiries
勾选构建,点击 Close ,输入一段 Description 之后点击 Confirm 按钮;
之后需要等待一段时间,等 Close Staging 的状态生效之后,就可以再次登录oss找到自己的构建,选中之后,点击 Release 按钮;再次 Confirm 之后,恭喜你,你的构建已经正式发布到 Maven 中央仓库了。

接下来,到中央仓库:https://search.maven.org/ 搜索到你的构建了,如果没有搜索到,稍等片刻一定会有的,OSS 同步到中央仓库需要一点点时间;

如果你已经在中央仓库搜索到自己的构建了,记得回到 sonatype 的 jira issue 里面回复管理员你已经完成了构建,可以 Close this issue 了;

tips:如果想自动close-release 可以把上面的注解的组建nexus-staging-maven-plugin注解打开

你可能感兴趣的:(maven)