发布jar包到maven中央仓库

记录一次发布jar包到maven中央仓库的经历

1.注册JIRA账号

注册地址:https://issues.sonatype.org/secure/Dashboard.jspa
注:这里密码要设置规则有点麻烦,看它的提示设置

2.创建 issue

发布jar包到maven中央仓库_第1张图片
image.png

注:这个里的groupId要和pom中的groupId一致(看别人写的,没证实过)

参考已经审核通过的


发布jar包到maven中央仓库_第2张图片
image.png

这些都是要填写的!Project URL 和SCM url 可以填写自己github项目的地址
创建好以后 sonatype的工作人员审核处理,速度还是很快的,一般一个工作日以内就有回复

比如:


发布jar包到maven中央仓库_第3张图片
image.png

让你验证下是否是你自己填写的,一般有几种方式,常用选择第一种

  • Add a TXT record to your DNS referencing this JIRA ticket: OSSRH-54313 (Fastest)

自己添加好DNS后,再次点击回应按钮,一般还是一个工作日内会回复你:


发布jar包到maven中央仓库_第4张图片
image.png

这个就代表好了,可以继续操作了

3.配置maven Setting.xml文件

发布jar包到maven中央仓库_第5张图片
image.png

id要和pom中的id对应,配置过私服的应该都知道


发布jar包到maven中央仓库_第6张图片
image.png

用户名密码是注册jira的用户名密码

4.windows环境安装gpg4win

下载地址:https://www.gpg4win.org/download.html
安装成功后,进入cmd,输入命令:
gpg --gen-key

中间提示你要设置名字+邮箱,其他可以使用默认值,记住输入的passphrase,后面mvn deploy会用到

发布jar包到maven中央仓库_第7张图片
image.png

5.上传密钥

上传刚刚生成的秘钥
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID

image.png

常用gpg命令如下:

查看是否安装成功
gpg --version

生成密钥对
gpg --gen-key

查看公钥
gpg --list-keys

将公钥发布到PGP密钥服务器
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID

查询公钥是否发布成功
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 公钥ID

下面是上传好的效果图


发布jar包到maven中央仓库_第8张图片
image.png

6.配置pom.xml(重点)

这里有好多坑,所以直接copy操作好的pom出来




    4.0.0

    ltd.vastchain
    vctc-java-sdk
    1.0.0

    vctc-java-sdk
    Official Java SDK for VastChain. https://www.vastchain.cn
    https://github.com/vastchain/vctc-java-sdk

    
        UTF-8
        UTF-8
        1.8
    
    
        
            MIT License
            https://github.com/everitoken/evt4j/blob/master/LICENSE
            repo
        
    
    
        https://github.com/vastchain/vctc-java-sdk
        scm:git:[email protected]:vastchain/vctc-java-sdk
        scm:git:[email protected]:vastchain/vctc-java-sdk
    
    
        
            com.squareup.okhttp3
            okhttp
            4.2.0
        

        
            com.alibaba
            fastjson
            1.2.58
        

        
            junit
            junit
            4.12
            test
        
    
    
        
            
                org.sonatype.plugins
                nexus-staging-maven-plugin
                1.6.7
                true
                
                    ossrh
                    https://oss.sonatype.org/
                    false
                
            
            
                org.apache.maven.plugins
                maven-javadoc-plugin
                3.1.0
                
                    false
                    none
                
                
                    
                        attach-javadocs
                        
                            jar
                        
                        package
                    
                
            
            
                org.apache.maven.plugins
                maven-source-plugin
                3.0.1
                
                    
                        attach-sources
                        
                            jar
                        
                    
                
            
            
                maven-assembly-plugin
                
                    
                        jar-with-dependencies
                    
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.6.1
                
                    1.8
                    1.8
                
            
            
                maven-surefire-plugin
                2.19.1
                
                    
                        org.junit.platform
                        junit-platform-surefire-provider
                        1.0.3
                    
                    
                        org.junit.jupiter
                        junit-jupiter-engine
                        5.0.3
                    
                
            
            
                org.apache.maven.plugins
                maven-site-plugin
                3.7.1
            
            
                org.apache.maven.plugins
                maven-project-info-reports-plugin
                3.0.0
            
            
                org.apache.maven.plugins
                maven-gpg-plugin
                1.6
                
                    
                        sign-artifacts
                        verify
                        
                            sign
                        
                    
                
            
        
    

    
        
            weihui
            [email protected]
        
    

    
        
            ossrh
            https://oss.sonatype.org/content/repositories/snapshots
        
        
            ossrh
            https://oss.sonatype.org/service/local/staging/deploy/maven2/
        
    


严格来说这些 <>plugin都要配置,甚至name,description,url都要配置

如果不配置,deploy的时候会报错

发布jar包到maven中央仓库_第9张图片
image.png

之前遇到3类错误,各种标签missing,直接添加就好了
还有一种就是没有公钥,需要你重新上传一次公钥就好了,重新执行命令
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID
image.png

就可以了
第三个错误是javadoc 找不到,所以我这边就配置了failOnError

 
                org.apache.maven.plugins
                maven-javadoc-plugin
                3.1.0
                
                    false
                    none
                
                
                    
                        attach-javadocs
                        
                            jar
                        
                        package
                    
                
            

7.maven deploy

和操作私服一样


发布jar包到maven中央仓库_第10张图片
image.png

build过程中会让你输入之前填写的passphrase


发布jar包到maven中央仓库_第11张图片
image.png

最后看到BUILD SUCCESS,就代表成功了,如果有错误,按照上面列的3种,解决掉再点一次deploy即可

8.发布到中央仓库

登陆https://oss.sonatype.org/#stagingRepositories
用户名密码和注册的jira账号一样

发布jar包到maven中央仓库_第12张图片
image.png

点击release就ok了
坐等2小时等它自己同步到maven中央仓库

jira那边也回复了


发布jar包到maven中央仓库_第13张图片
image.png

不过我这边是需要搜索下才显示
https://search.maven.org

发布jar包到maven中央仓库_第14张图片
image.png

如果直接搜索这个搜不到,需要搜索上面那个链接访问看看
发布jar包到maven中央仓库_第15张图片
image.png

注:如果没有通过配置自动发布插件nexus-staging-maven-plugin,进行mvn deploy,是看不到的,而且需要手动drop掉,比如:


发布jar包到maven中央仓库_第16张图片
image.png

参考:
https://blog.csdn.net/ljbmxsm/article/details/78009268

https://www.cnblogs.com/softidea/p/6743108.html

你可能感兴趣的:(发布jar包到maven中央仓库)