发布jar包到maven中央仓库(无个人域名)

发布jar包到maven中央仓库(无个人域名)

一、简介

1.1 概述

我们通常使用的Jar包,大多都是从镜像上拉取的,也有私人仓库,也有直接从Maven中央仓库拉取的,无论从镜像还是仓库,发布到中央仓库的jar包,都是可以直接拉取下来的。所以,当我们自己打包了一个jar包之后,打算开源出去装逼的时候,我们就可以将jar包发布到sonatype.org,这个地址看起来不是maven,但是发布上去之后,我们在mvnrepository.com和search.maven.org都可以看到自己的jar包了。

本文按照网上乱七八糟的方式上传过jar包,经过血与泪的洗礼,总结出了一套最简单实用的方式。

1.2 本篇重点

本篇先介绍下如何用git的域名来发布自己的jar包,下一篇介绍下如何用自己的域名来发布jar包。

1.3 地址

工单管理地址:https://issues.sonatype.org/secure/Dashboard.jspa

说明:注册账号、创建和管理issue,Jar包的发布是以解决issue的方式起步的

Jar包上传地址:https://oss.sonatype.org/#welcome

说明:使用maven提交后的jar包先到这个库中,可以用maven命令上传,也可以直接在界面上上传。

二、开始上传

2.1 创建工单

创建工单是必须的,也很简单,在工单管理中提交下jar包相关信息即可。

首先要注册账号,如果没有账号,需要先注册一个,记住用户名密码,后边要配置到setting.xml中。

点击Craete,弹出如下窗口:


在这里插入图片描述

必填项选择:

Project:Community Support - Open Source Project Repository Hosting

Issue Type:New Project

Summary:JAR包名称,如:JpaMapper

Group Id:你懂得,不用多说,如com.github.ffch,如果是个人域名,填写个人的groupId,如:cn.pomit

Project URL:项目站点,如:https://github.com/ffch/jpa-mapper,如果有项目主页,填写项目主页,如https://www.pomit.cn/jpa-mapper

SCM url:项目源码仓库,如:https://github.com/ffch/jpa-mapper.git

其他内容不用填写,默认即可。

创建Issue后,Sonatype的工作人员审核处理,一般一个工作日以内,当Issue的Status变为RESOLVED后,就可以进行下一步操作了。

使用Group Id为com.github.ffch申请过程如下:

在这里插入图片描述

2.2 配置Maven

2.2.1 配置setting.xml

setting.xml文件一般在当前用户文件夹的.m2文件夹下。

在servers中增加server配置

  
    
      sonatype-nexus-snapshots
      Sonatype 账号
      Sonatype 密码
    
    
      sonatype-nexus-staging
      Sonatype 账号
      Sonatype 密码
    
  

2.2.2 配置pom.xml

2.2.2.1 搜到的方法

网上的一般说要配置oss-parent,这样好处就是很多东西可以省掉。

如:


    org.sonatype.oss
    oss-parent
    7

再加上开发者信息:


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



    
        chenfufei
        [email protected]
        chenfufei
        https://github.com/ffch
    



    master
    [email protected]:ffch/jpa-mapper.git
    scm:git:[email protected]:ffch/jpa-mapper.git
    scm:git:[email protected]:ffch/jpa-mapper.git

2.2.2.2 我的方法

但是如果我们已经配置了一个parent,可能就不想用这种方式了,可以使用以下方式:



    4.0.0

    cn.pomit
    jpa-mapper
    2.0
    pom

    jpa-mapper
    jpa code for mybatis
    https://www.pomit.cn/jpa-mapper
    
    
        UTF-8
        UTF-8
        1.8
        UTF-8
        3.4.6
        1.3.2
        1.3.0
        2.0.0.RELEASE
        1.0
        1.2.2
    
    
        
            The Apache Software License, Version 2.0
            http://www.apache.org/licenses/LICENSE-2.0.txt
            actable
        
    

    
        
            chenfufei
            [email protected]
            chenfufei
            https://github.com/ffch
        
    

    
        master
        [email protected]:ffch/jpa-mapper.git
        scm:git:[email protected]:ffch/jpa-mapper.git
        scm:git:[email protected]:ffch/jpa-mapper.git
    
    
        
            sonatype-nexus-snapshots
            Sonatype Nexus Snapshots
            https://oss.sonatype.org/content/repositories/snapshots
        
        
            sonatype-nexus-staging
            Nexus Release Repository
            https://oss.sonatype.org/service/local/staging/deploy/maven2/
        
    
    
    
        
            
                javax.persistence
                persistence-api
                ${jpa.version}
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-autoconfigure
                ${mybatis-spring-boot.version}
            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            
            
                org.mybatis
                mybatis-spring
                ${mybatis-spring.version}
            
            
                cn.pomit
                jpa-mapper-spring-boot-autoconfigure
                ${jpa-mapper.version}
            
            
                cn.pomit
                jpa-mapper-spring-boot-starter
                ${jpa-mapper.version}
            
            
                cn.pomit
                jpa-mapper-core
                ${jpa-mapper.version}
            
            
                org.springframework.boot
                spring-boot-dependencies
                ${spring-boot.version}
                pom
                import
            
        
    

    
        
            sonatype-oss-release
            
                
                    
                        org.apache.maven.plugins
                        maven-source-plugin
                        2.1.2
                        
                            
                                attach-sources
                                
                                    jar-no-fork
                                
                            
                        
                    
                    
                        org.apache.maven.plugins
                        maven-javadoc-plugin
                        2.9.1
                        
                            
                                attach-javadocs
                                
                                    jar
                                
                            
                        
                        
                            true
                            ${JAVA_HOME}/bin/javadoc
                        
                    
                    
                        org.apache.maven.plugins
                        maven-gpg-plugin
                        1.1
                        
                            
                                sign-artifacts
                                verify
                                
                                    sign
                                
                            
                        
                    
                
            
        
    
    
        jpa-mapper-spring-boot
        jpa-mapper-core
    

2.3 配置gpg-key

如果是使用的windows,可以下载gpg4win,地址:https://www.gpg4win.org/download.html,安装后在命令行中执行

gpg --gen-key

生成,过程中需要填写名字、邮箱等,其他步骤可以使用默认值,不过有个叫:Passphase的参数需要记住,这个相当于是是密钥的密码,下一步发布过程中进行签名操作的时候会用到。

命令执行之后,会提示输入真实姓名和邮箱,之后提示输入密码。


在这里插入图片描述

之后会得到pub,上图中深色部分
将pub上传到key验证库

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys EBD22379E4658EFC731753EC27039418A67D0C8F

2.4 上传Jar包

使用maven命令上传jar包:

mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=密钥密码"

实际操作过程中,-Darguments="gpg.passphrase=密钥密码"不写会提示输入密码,我这里写了还是提示了。

使用maven命令部署会更好一点,因为我用eclipse没部署成功,提示出错,eclipse是这样玩的:


在这里插入图片描述

这个过程也是很让人崩溃的,特别慢,而且上传完成之后还是有很多问题。下面介绍一种快捷上传的方式。

2.5 快捷上传jar包

使用maven命令上传多个jar包时,sonatype会自动把项目分割成多个Repository,这样close的时候就会校验失败,因为这个原因,上传了n次,不得不另辟蹊径。

失败情况如图,不是asc文件没有,而是在第二个Repository中,close的时候就失败了:


在这里插入图片描述

因此,我们不能用这种方式,我们可以在页面上直接上传:

先drop掉失败记录(个人强迫证),点击左侧的staging-upload,选择自己的pom文件和其他文件上传

Select Artifact(s) for Upload按钮点了选择文件之后,要点Add Artifact按钮将文件放置到Artifacts列表框中。
Description必填,但随意。

如图:

在这里插入图片描述

三、Jar入库

经过漫长的等待,jar包可能应该已经上传到stagingRepositories了。

如图所示,我们可以在右上角的搜索框输入关键字查找我们的jar包。多个jar包的上传,会出现多个Repository,点击相应的Repositories,可以查看内容。

图示:


在这里插入图片描述

3.1 校验Jar包

选择列表中的Repositories,多个Repositories要同时选定,此时的构件状态为open,点击上方的close–>Confirm。

在下边的Activity选项卡中查看状态,当状态变成closed后,执行Release–>Confirm,并在下边的Activity选项卡中查看状态。

成功后构件自动删除,一小段时间(约1-2个小时)后即可同步到maven的中央仓库。

下一篇介绍下如何用自己的域名来发布jar包。步骤类似,前面部分略有不同,需要配置其他东西。

四、 JpaMapper

JpaMapper官方地址:
https://www.pomit.cn/jpa-mapper/

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