准备
- GitHub的账户
- 注册Sonatype的账户
https://issues.sonatype.org/secure/Signup!default.jspa
下载GPG
https://www.gnupg.org/download/
4.配置maven项目的发布申请
创建问题,填写内容。
这里要注意一下:group id,最好填io.github.xxx

提交完成之后,会创建一个Issues,内容显示如下:
这里需要注意一下注释,他会提示你需要做的一些工作,下面是我创建成功后的一些提示
改groupid
- 在github创建一个OSSRH-8028的id
安装并配置GPG
发布到Maven仓库中的所有文件都要使用GPG签名,以保障完整性。因此,我们需要在本地安装并配置GPG。
1、GPG安装
下载地址: https://www.gnupg.org/download/
下载后傻瓜式安装即可
使用管理员身份打开 cmd,执行命令 gpg —version ,判断是否安装成功
2、生成密钥
使用管理员身份打开 cmd
执行命令:
gpg --gen-key
把 key 发送到中央仓库服务器,后面上传会做权鉴
gpg --keyserver keyserver.ubuntu.com --send-keys B34ACF782ABE8FD3gpg --keyserver keyserver.ubuntu.com --recv-keys B34ACF782ABE8FD3
配置maven
setting.xml为Maven的全局配置文件,路径为$MAVEN_HOME/conf/settings.xml,需要注册Sonatype的账户时配置的Username和Password添加到servers标签中,这样才能将jar包部署到Sonatype OSSRH仓库:
配置Maven的setting.xml
<server><id>sonatype-nexus-snapshots</id><username>Sonatype账号</username><password>Sonatype密码</password></server>
配置项目的pom.xml
根据Sonatype OSSRH的要求,以下信息都必须配置:
- Supply Javadoc and Sources
- Sign Files with GPG/PGP
- Sufficient Metadata
- Correct Coordinates
- Project Name, Description and URL
- License Information
- Developer Information
-
增加开源许可协议,SCM信息,开发者信息等待根据自己信息填写即可。
```java
The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt repo https://github.com/wslxm/spring-boot-plus2 scm:https://github.com/wslxm/spring-boot-plus2.git scm:https://github.com/wslxm/spring-boot-plus2.git wangsong 1720696548@qq.com +8 ossrh https://s01.oss.sonatype.org/content/repositories/snapshots/ ossrh https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
<a name="fKzAK"></a>## pom.xml 增加打包配置```java<build><plugins><!-- spring boot 项目复用需要添加的内容 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- java-doc配置 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.10.4</version><configuration><aggregate>true</aggregate></configuration><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals><configuration> <!-- add this to disable checking --><additionalparam>-Xdoclint:none</additionalparam></configuration></execution></executions></plugin><!-- 使用source 进行jar打包--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>3.0.1</version><executions><execution><id>attach-sources</id><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin><!-- GPG --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><version>1.6</version><executions><execution><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin></plugins></build>
执行命令上传到仓库
管理员身份打开 cmd 进入项目命令执行命令,注意在idea 编辑器中的终端无法执行 gpg 命令,无法进行上传操作
mvn clean deploy
看到很多上传成功的信息,其中有自己的jar包 就表示成功了
注意: 如果自己的jar后面跟了当前日期不会上传到存储库,jar版本不能带有 开发版的英文后缀
如果失败可以参考https://www.yuque.com/liangrui-ndqcn/fb5pya/qos9hs
验证并发布
查看发布jar包
此时进入https://s01.oss.sonatype.org/#welcome查看发布好的构件,点击左侧的Staging Repositories,可以使用Group Id或其他信息搜索自己的项目。
如果弹出用户名或密码,则输入注册sonatype时对应的用户和密码信息。
此时需注意,如果项目中版本信息为1.0.0-SNAPSHOT,即SNAPSHOT为后缀,则发布的项目位于Snapshots目录下。在左上角的Artifact Search中能够搜到。
如果是Release后缀,则可直接在Staging Repositories中看到(有可能要稍等一下,等待平台处理)。

选中对于的repository之后,点击的close,close时会检查发布的构件是否符合要求。若符合要求,则close成功,成功之后点击箭头所指的release,即可正式将jar包发布到Sonatype OSSRH仓库。

当点击Release之后,邮件中会收到Issues变化的信息,提示同步已经被激活,正常10分钟就可以更新同步。

release成功大概2个小时之后,该构件就会同步到Maven中央仓库,届时会有邮件通知。
实践过程中发现十分钟之内已经成功同步到https://repo1.maven.org/的中央仓库当中。

