分几个步骤:
1、注册 issues.sonatype.org 账号
2、创建 issues 填写项目地址(github、gitee等)
3、验证域名持有(没有使用自己域名的跳过)
4、等待上面几点验证完成,需要手动相issues状态改为open(点击操作中的响应),然后等待工作人员通过。
5、通过后你就可以推送jar到 https://s01.oss.sonatype.org/ 了。(到此才能登陆)
6、等待同步到中央仓库即可正常引入
去 https://issues.sonatype.org/ 中注册一个账号。
点击导航栏的创建,若你没有域名,在Group Id
中填写参考:https://central.sonatype.org/publish/requirements/coordinates/
填写信息,下面的是我的例子:
然后创建
得到 OSSRH-79874
,然后等待审核人员添加域名验证评论
将 OSSRH-79874
解析到我的域名lingkang.top
做完以上,等几分钟再回到issues中,将状态改为open,一定要改为open,否则没有工作人员审核通过
对应位置有一个响应按钮,点击它就能将状态设置为open,我不太记得是不是响应了,记得添加了域名解析再点
然后工作人员就会审核,等一段时间来就会看到状态变成已解决
,说明通过了,然后发一句感谢:
这时你就可以通过上面注册的账号登录 https://s01.oss.sonatype.org/#stagingRepositories
说明:https://central.sonatype.org/publish/requirements/gpg/
在这里下载简易安装版
说明:https://central.sonatype.org/publish/requirements/gpg/
在这里下载gpg4win-4.0.0.exe
https://gpg4win.org/download.html
一路安装点击默认即可,安装后可能需要重启电脑。
cmd生成签名:
gpg --gen-key
需要填写一些基本信息,并设置一个密码
注意这个密码很重要,你换一台电脑后推送项目时需要输入这个密码。忘记了你就只能重新生成!!!
注意这个密码很重要,你换一台电脑后推送项目时需要输入这个密码。忘记了你就只能重新生成!!!
注意这个密码很重要,你换一台电脑后推送项目时需要输入这个密码。忘记了你就只能重新生成!!!
例如生成如下:
pub ed25519 2022-04-12 [SC] [expires: 2024-04-11]
DD33E5A9CDD332F444EAE9EF888A06B29706DBB4
uid lingkang <ling-kang@qq.com>
sub cv25519 2022-04-12 [E] [expires: 2024-04-11]
上传公钥到服务器
使用 gpg --keyserver hkp://URL --send-keys
签名上传公钥,然后使用 gpg --keyserver hkp://URL --recv-keys
签名查看是否上传成功。
gpg --keyserver keyserver.ubuntu.com --send-keys DD33E5A9CDD332F444EAE9EF888A06B29706DBB4
检查
gpg --keyserver keyserver.ubuntu.com --recv-keys DD33E5A9CDD332F444EAE9EF888A06B29706DBB4
或者
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys DD33E5A9CDD332F444EAE9EF888A06B29706DBB4
检查
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys DD33E5A9CDD332F444EAE9EF888A06B29706DBB4
将 sonatype 账号密码配置到setting.xml
的
<server>
<id>maven-publicid>
<username>lingkangusername>
<password>your passwordpassword>
server>
在项目中,配置一下pom.xml
<modelVersion>4.0.0modelVersion>
<groupId>top.lingkanggroupId>
<artifactId>final-sessionartifactId>
<packaging>pompackaging>
<version>2.0.1version>
<url>https://gitee.com/lingkang_top/final-sessionurl>
<name>final-sessionname>
<description>final-session 一个轻量级分布式session框架description>
<organization>
<name>lingkangname>
<url>http://lingkang.topurl>
organization>
<developers>
<developer>
<name>lingkangname>
<email>[email protected]email>
<organization>lingkangorganization>
<organizationUrl>http://lingkang.toporganizationUrl>
<roles>
<role>Developerrole>
roles>
<timezone>+8timezone>
developer>
developers>
<licenses>
<license>
<name>MIT Licensename>
<url>http://www.opensource.org/licenses/mit-license.phpurl>
<distribution>repodistribution>
license>
licenses>
<scm>
<url>https://gitee.com/lingkang_top/final-sessionurl>
<connection>https://gitee.com/lingkang_top/final-session.gitconnection>
scm>
<modules>
<module>final-session-coremodule>
<module>example-servletmodule>
<module>example-springbootmodule>
modules>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<java.version>1.8java.version>
<spring-boot.version>2.1.12.RELEASEspring-boot.version>
properties>
<distributionManagement>
<snapshotRepository>
<id>maven-publicid>
<name>oss Snapshots Repositoryname>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/url>
snapshotRepository>
<repository>
<id>maven-publicid>
<name>oss Staging Repositoryname>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/url>
repository>
distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-source-pluginartifactId>
<executions>
<execution>
<id>attach-sourcesid>
<phase>packagephase>
<goals>
<goal>jar-no-forkgoal>
goals>
execution>
executions>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-javadoc-pluginartifactId>
<version>3.2.0version>
<executions>
<execution>
<id>attach-javadocsid>
<goals>
<goal>jargoal>
goals>
execution>
executions>
<configuration>
<source>${java.version}source>
<additionalJOption>-Xdoclint:noneadditionalJOption>
<failOnError>falsefailOnError>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-gpg-pluginartifactId>
<version>1.6version>
<executions>
<execution>
<phase>verifyphase>
<goals>
<goal>signgoal>
goals>
execution>
executions>
plugin>
plugins>
build>
<repositories>
<repository>
<id>centralid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<layout>defaultlayout>
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
你也可以随便找个spring源码包,照着它抄pom.xml即可,不必像我这样
执行安装推送,根目录下执行
mvn clean deploy
若报找不到 gpg2 错误,就去C:\Program Files (x86)\GnuPG\bin将gpg.exe改为gpg2.exe即可
若报找不到 gpg2 错误,就去C:\Program Files (x86)\GnuPG\bin将gpg.exe改为gpg2.exe即可
若报找不到 gpg2 错误,就去C:\Program Files (x86)\GnuPG\bin将gpg.exe改为gpg2.exe即可
可以看到核心代码生成的jar已经成功,那些example不用上传,报错也不用管。
登录 https://s01.oss.sonatype.org/#stagingRepositories
选择合上要发布的jar,将暂存库关闭并通过检验就会不同到Maven,一定要关闭暂存库通过才能同步!
一定要所有的扫描校验都通过才行,而且有延迟和邮件通知你的
有校验没通过就要自己根据提示改改,重新打包推送。
接着释放release
依赖:https://central.sonatype.org/publish/release/
一定要release
才会同步到Maven公共仓库,否则过一段时间会清理了你的jar
过半小时就能直接引用:(虽然搜索不到)
此时你就能在https://repo1.maven.org/maven2/
中找到你的依赖
<dependency>
<groupId>top.lingkanggroupId>
<artifactId>final-session-coreartifactId>
<version>2.0.1version>
dependency>
我的已经同步公共仓库:https://repo1.maven.org/maven2/top/lingkang/
过几天就有搜索结果。
这么辛苦写攻略,点个赞再走嘛