macos上deploy一个jar包到maven中央仓库

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、创建sonatype账号

二、安装gpg环境

三、配置maven的settings.xml

四、配置pom.xml

五:deploy到中央仓库

六、在sonatype进行release

总结


前言

发布jar到maven中央仓库需要五个步骤,其中第二步gpg安装和使用在不同的操作系统上存在差异性,这里着重讲解的是macos上gpg的使用方法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建sonatype账号

地址:Loading...
注意要记住账号密码,会用于我们后续的发布及相关操作

创建完账号后,请提交一个issues
选择:Community Support - Open Source Project Repository Hosting (OSSRH)

macos上deploy一个jar包到maven中央仓库_第1张图片

groupId:填写您的groupId
projectUrl :可以填写源代码所在的地址,或者官网首页,比如:https://gitee.com/wang-laoshi/shield.git

SCM url: 填写源代码的git地址,比如:https://gitee.com/wang-laoshi/shield

macos上deploy一个jar包到maven中央仓库_第2张图片

兜兜飞节

接下来按照提示验证域名(前提你需要一个域名并且能设置dns解析)
 

二、安装gpg环境

macos下安装gpg环境会遇到很多问题

默认命令: brew install gpg

但不太可能会一次成功,可能会遇到以下错误 gnupg: no bottle available!

macos上deploy一个jar包到maven中央仓库_第3张图片

解决方案: 将清华的软件源配置为brew的软件源

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc

然后运行

gpg --generate-key

依次输入用户名,邮箱,然后按o确认
再输入两次密码,记住这个密码,然后会生成

macos上deploy一个jar包到maven中央仓库_第4张图片

记住pub第二行部分的公钥字符串,复制一下

注意这串很长的字符串,就是你的publickey,用于上传秘钥到opengpg
然后上传秘钥

gpg --keyserver http://keys.openpgp.org:11371 --send-keys 99EF4C04F5A776CC9E很长的公钥

至此,gpg部分结束

三、配置maven的settings.xml




  /Users/wanglaoshi/.m2/repository
  

  
    
      sonatype-releases
      你的sonatype用户名
      你的sonatype密码
    
    
      sonatype-snapshots
      你的sonatype用户名
      你的sonatype密码
    
  

  
    
      mirror
      central,jcenter,!rdc-releases,!rdc-snapshots
      mirror
      https://maven.aliyun.com/nexus/content/groups/public
    
  
  
  
    
      sonatype
      
        
          sonatype-releases::default::https://oss.sonatype.org/service/local/staging/deploy/maven2/
        
        
          sonatype-snapshots::default::https://oss.sonatype.org/content/repositories/snapshots
        
        gpg
        你输入的gpg的密码
      
    
  

  
    sonatype
  
   


四、配置pom.xml



    4.0.0
    
        org.springframework.boot
        spring-boot-dependencies
        2.7.6
        
    

    net.quanter
    shield-parent
    shield-parent
    pom
    1.4.0
    https://gitee.com/wang-laoshi/shield
    您的描述

    
        
            GNU Lesser General Public License Version 3
            http://www.gnu.org/licenses/lgpl.txt
            repo
        
    

    
        master
        https://gitee.com/wang-laoshi/shield
        scm:git:https://gitee.com/wang-laoshi/shield
        scm:git:https://gitee.com/wang-laoshi/shield
    

    
        宽特
        https://www.quanter.net
    

    
        
            王老实
            [email protected]
            宽特
        
    

    
        11
        @
        ${java.version}
        ${java.version}
        UTF-8
        UTF-8
        1.4.0-SNAPSHOT
    

    
        
            sonatype
            
                
                    
                        org.apache.maven.plugins
                        maven-gpg-plugin
                        3.0.1
                        
                            
                                sign-artifacts
                                verify
                                
                                    sign
                                
                            
                        
                    

                    
                        org.sonatype.plugins
                        nexus-staging-maven-plugin
                        1.6.12
                        true
                        
                            ${releases.id}
                            https://oss.sonatype.org/
                            true
                        
                    
                
            
        
    

    
        
            org.junit.jupiter
            junit-jupiter-engine
            5.9.0
            test
    


    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    ${maven.compiler.source}
                    ${maven.compiler.target}
                    ${project.build.sourceEncoding}
                
            

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

            
                org.apache.maven.plugins
                maven-resources-plugin
                
                    ${project.build.sourceEncoding}
                
            

            
                org.apache.maven.plugins
                maven-javadoc-plugin
                
                    ${project.build.sourceEncoding}
                    ${project.build.sourceEncoding}
                    ${project.build.sourceEncoding}
                
                
                    
                        attach-javadocs
                        package
                        
                            jar
                        
                        
                            -Xdoclint:none
                        
                    
                    
                        aggregate
                        
                            aggregate
                        
                        prepare-package
                    
                
            
        
    

五:deploy到中央仓库

命令:
 

mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DskipTests

如果出现错误
gpg: 签名时失败: Inappropriate ioctl for device,是因为没有让终端具备输入框的能力
则执行:
 

export GPG_TTY=$(tty)

macos上deploy一个jar包到maven中央仓库_第5张图片

该处使用的url网络请求的数据。

六、在sonatype进行release

登录https://oss.sonatype.org/
选择Staging Repositories,找到刚刚deploy上来的jar,选择close

macos上deploy一个jar包到maven中央仓库_第6张图片

如果正常情况下,不会出现警告标志,则说明成功了,如果gpg那一步失败了,则会出现无签名的警告
最后选择release

macos上deploy一个jar包到maven中央仓库_第7张图片

 

至此大功告成


总结

最麻烦的可能是第一步和第二步,后面基本上只要网络通畅,按照步骤操作基本上没啥大问题。

你可能感兴趣的:(maven,jar,java)