发布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/