2022年发布jar到Maven公共仓库最全攻略

2022年jar包发布到Maven公共仓库最全攻略

分几个步骤:

1、注册 issues.sonatype.org 账号
2、创建 issues 填写项目地址(github、gitee等)
3、验证域名持有(没有使用自己域名的跳过)
4、等待上面几点验证完成,需要手动相issues状态改为open(点击操作中的响应),然后等待工作人员通过。
5、通过后你就可以推送jar到 https://s01.oss.sonatype.org/ 了。(到此才能登陆)
6、等待同步到中央仓库即可正常引入

1、注册账号

去 https://issues.sonatype.org/ 中注册一个账号。

2、创建issues

点击导航栏的创建,若你没有域名,在Group Id 中填写参考:https://central.sonatype.org/publish/requirements/coordinates/
2022年发布jar到Maven公共仓库最全攻略_第1张图片
填写信息,下面的是我的例子:
2022年发布jar到Maven公共仓库最全攻略_第2张图片
然后创建
得到 OSSRH-79874 ,然后等待审核人员添加域名验证评论
2022年发布jar到Maven公共仓库最全攻略_第3张图片

3、域名持有验证

当工作人员叫你添加域名认证时,
2022年发布jar到Maven公共仓库最全攻略_第4张图片

OSSRH-79874 解析到我的域名lingkang.top
2022年发布jar到Maven公共仓库最全攻略_第5张图片
2022年发布jar到Maven公共仓库最全攻略_第6张图片
做完以上,等几分钟再回到issues中,将状态改为open,一定要改为open,否则没有工作人员审核通过
2022年发布jar到Maven公共仓库最全攻略_第7张图片
对应位置有一个响应按钮,点击它就能将状态设置为open,我不太记得是不是响应了,记得添加了域名解析再点

4、审核通过

然后工作人员就会审核,等一段时间来就会看到状态变成已解决,说明通过了,然后发一句感谢:
2022年发布jar到Maven公共仓库最全攻略_第8张图片
这时你就可以通过上面注册的账号登录 https://s01.oss.sonatype.org/#stagingRepositories

5、推送jar

5.1 申请 gpg 签名

说明:https://central.sonatype.org/publish/requirements/gpg/
在这里下载简易安装版
2022年发布jar到Maven公共仓库最全攻略_第9张图片
说明: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]

2022年发布jar到Maven公共仓库最全攻略_第10张图片
上传公钥到服务器
使用 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

5.2 配置maven

将 sonatype 账号密码配置到setting.xml

	
	<server>
		<id>maven-publicid>
		<username>lingkangusername>
		<password>your passwordpassword>
	server>

2022年发布jar到Maven公共仓库最全攻略_第11张图片

5.3 推送jar

在项目中,配置一下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即可
2022年发布jar到Maven公共仓库最全攻略_第12张图片

可以看到核心代码生成的jar已经成功,那些example不用上传,报错也不用管。

5.4 选择要发布的jar

登录 https://s01.oss.sonatype.org/#stagingRepositories
选择合上要发布的jar,将暂存库关闭并通过检验就会不同到Maven,一定要关闭暂存库通过才能同步!
2022年发布jar到Maven公共仓库最全攻略_第13张图片
2022年发布jar到Maven公共仓库最全攻略_第14张图片
一定要所有的扫描校验都通过才行,而且有延迟和邮件通知你的
2022年发布jar到Maven公共仓库最全攻略_第15张图片
有校验没通过就要自己根据提示改改,重新打包推送。
接着释放release依赖:https://central.sonatype.org/publish/release/
一定要release才会同步到Maven公共仓库,否则过一段时间会清理了你的jar
2022年发布jar到Maven公共仓库最全攻略_第16张图片
2022年发布jar到Maven公共仓库最全攻略_第17张图片
过半小时就能直接引用:(虽然搜索不到)
此时你就能在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/
过几天就有搜索结果。
2022年发布jar到Maven公共仓库最全攻略_第18张图片2022年发布jar到Maven公共仓库最全攻略_第19张图片

5.5 注意事项

若不需要模块也上传了,可以在关闭暂存库前删除:
2022年发布jar到Maven公共仓库最全攻略_第20张图片

这位帅哥点个赞再走

这么辛苦写攻略,点个赞再走嘛

你可能感兴趣的:(java,git,java,maven)