前提

首先的你项目需要在Gitee或者Github上有仓库

我这里以Gitee是的yhchat-sdk-core仓库为例

开始

在sonatype上创建问题

访问sonatype注册并登录

创建一个问题

概要

填仓库名称

描述

随意写写

Group Id

填写自己的域名,如果没有域名的话,可以自行百度使用GiteeGithub的域名

需要根据项目的maven坐标按需填写,与maven项目pom配置一致

Project URL

填仓库地址:https://gitee.com/daenmax/yhchat-sdk-core

SCM url

填仓库Git地址:https://gitee.com/daenmax/yhchat-sdk-core.git

点击创建

然后会有人审核你这个问题,全程跟进,稍等几分钟,就会有评论

添加DNS解析

需要验证组ID域名是否是你的,所以需要添加一条DNS TXT解析

主机记录

OSSRH-92477是你的问题编号,字母改成消息就是主机记录ossrh-92477

记录值

问题页面的地址栏网址就是记录值:https://issues.sonatype.org/browse/OSSRH-92477

解析添加好之后,一般过几分钟生效,

添加完成按钮

因为我这里已经点过了,所以没这个按钮了,具体就是 response 还是 完成 来着,我也忘了,点就行了

如果过几分钟后,状态或者解决结果 变成了:已解决,就代表验证通过了

安装GnuPG软件,并生成签名

下载安装

去官网下载并安装:https://www.gpg4win.org/

创建秘钥

发布秘钥

弹窗提示就代表成功了

配置maven

登录暂存库,账号密码和sonatype一样,登录地址:https://s01.oss.sonatype.org/#stagingRepositories

创建一个token



然后复制,添加到在settings.xml

		<server>
<id>ossrh</id>
<username>rBxxxxxxJC</username>
<password>szExxxxxxxxxxxxxxxxxxxxxxxxxxLg/1</password>
</server>

如图

项目POM配置

主要就是添加urllicensesscmdevelopersdistributionManagement等节点,具体参考下面我的完整POM文件

需要注意的是,plugins打包插件建议使用和我一样的,或者你自己弄也行,打包时,必须同时打包出来源码文档jar,否则后面的检查无法通过

另外需要注意的是,我们上传的远程仓库的地址是带s01前缀的,而比较旧的文章中不带s01前缀

这是因为旧的sonatype maven仓库已经资源满载了,所以官方新建了一个s01 maven仓库,未来可能还会有s02、s03

现阶段在sonatype JIRA管理平台上注册的用户,只能上传这个新的s01仓库

我的POM示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version>
<relativePath/>
</parent>
<groupId>cn.daenx</groupId>
<artifactId>yhchat-sdk-core</artifactId>
<version>1.1.0</version>
<name>yhchat-sdk-core</name>
<description>
yhchat-sdk-core是云湖社交的Java版本的SDK核心服务,通过此Core可以快速构建您的云湖机器人,能让您以非常便捷的方式和云湖服务进行交互。
</description>
<url>https://gitee.com/daenmax/yhchat-sdk-core</url> <properties>
<java.version>17</java.version>
<spring-boot.version>3.3.3</spring-boot.version>
<hutool.version>5.8.32</hutool.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- Hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
<optional>true</optional>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<optional>true</optional>
</dependency>
</dependencies> <!--开源协议...-->
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses> <scm>
<connection>https://gitee.com/daenmax/yhchat-sdk-core.git</connection>
<developerConnection>git@gitee.com:daenmax/yhchat-sdk-core.git</developerConnection>
<url>https://gitee.com/daenmax/yhchat-sdk-core</url>
</scm> <developers>
<developer>
<id>DaenMax</id>
<name>DaenMax</name>
<email>1330166565@qq.com</email>
<roles>
<role>Developer</role>
</roles>
<timezone>+8</timezone>
</developer>
</developers> <distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/releases/</url>
</repository>
</distributionManagement> <build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement> <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
<!--生成源码jar包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<goals>deploy</goals>
</configuration>
</plugin> <!-- jdk1.8中必须增加Xdoclint:none,因为1.8 javadoc要求必须严格格式检查,否则会报错--> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build> </project>

打包并上传

需要注意以下几点:

1.环境变量里的JDK版本需要和你项目使用的JDK版本一致

2.不要使用IDEA的打包,需要使用CMD命令打包

在项目根目录打开CMD

安装到本地仓库

mvn clean install -DexcludePlugin=maven-gpg-plugin

执行打包命令

mvn clean install deploy -P release

然后会弹出一个框框,然你输入秘钥,这个就是上面说的这个密码一定要记住

如果成功的话,就代表成功了(好像有点废话)

在仓库中查看

至此,就完事了,在 Maven Central 可以立即进行搜索到

Maven Repository大概第二天才能搜索到

(在此期间,无法搜索到也不影响项目中使用坐标引用你的项目)

注意

————————————2024年已经修改,不需要下面的操作了————————————————————————————

关闭和发行

上面maven命令执行完,我们还需要进行进一步的操作

这是因为我们上传的jar放入了staging暂存库里面,我们需要把它转到release库

这其中sonatype平台会针对你的项目信息、jar文档、源码等内容进行完整性校验

完整性校验不通过的项目是无法转到release的,也就无法同步到maven中央仓库

暂存库登录地址:https://s01.oss.sonatype.org/#stagingRepositories

账号密码和sonatype一样

登录上来后,点击Refresh,就可以看到你刚刚上传的了

如果认为刚刚打包上传错了,那就点击Drop删除,然后重新执行maven打包上传命令

觉得无误后,点击Close,sonatype就会开始扫描和检查你的项目了,

如果检查通过,就会收到一封邮件,此时Release按钮就可以点击了(如果还是不能点击,就等几分钟再Refresh看看)

点击Release开始发行,发行成功后,就可以点击Drop删除(一般会自动Drop,如果你勾选了的话)

如果检查不通过,就点击下面的SummaryActivity来查看为啥不通过

整改后,先点击Drop删除暂存库里的,然后重新执行上面的打包上传命令即可

在仓库中查看

至此,就完事了,在 Maven Central 可以立即进行搜索到

Maven Repository大概第二天才能搜索到

(在此期间,无法搜索到也不影响项目中使用坐标引用你的项目)

结束

一切都ok之后,回到Sonatype JIRA管理平台将“问题”关闭,至此,恭喜你~

上传自己java项目到maven中央仓库pom的更多相关文章

  1. maven插件上传本地jar包到maven中央仓库

    settings配置(如果设置后有问题,可以重启idea,保证重新加载settings文件): <!-- 上传jar包到maven中央仓库配置start --> <server> ...

  2. Maven系列(十)发布自己的项目到 Maven 中央仓库

    Maven 发布自己的项目到 Maven 中央仓库 可能很多人都在用 Maven 仓库,但是如果要问怎么发布项目到中央仓库,估计很多人都不知道了,下面本篇文章带大家往中央仓库发布一个自己的 Maven ...

  3. 发布项目到maven中央仓库

    https://www.xiaominfo.com/2017/04/25/swagger-bootstrap-ui-issue-maven-central/?tdsourcetag=s_pcqq_ai ...

  4. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):4、Maven项目转换与pom.xml配置

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  5. 个人开源项目如何上传maven中央仓库

    最近在写一些开源项目,想把自己写的东西放到maven中央仓库,提供给更多的人使用.所以写这一篇文章,记录一下自研开源项目jar包上传同步maven中央仓库成功的整个过程,这其中还是有不少的坑的. 目录 ...

  6. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):5、Maven版本发布与后续版本更新(大结局)

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  7. 上传自己的构件(Jar)到Maven中央仓库

    背景: 用了Maven之后,你有没有这样的想法,自己一直在使用别人贡献的代码,自己能不能把自己觉得好的代码也贡献出来让大家方便. 还有如果你也是一名程序员,你会不会觉得要是把自己积累起来日常常用的代码 ...

  8. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1、JIRA账号注册

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  9. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2、PGP下载安装与密钥生成发布

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  10. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):3、Maven独立插件安装与settings.xml配置

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

随机推荐

  1. wxpython 文件重命名报错提示os.rename WinError 2]系统找不到指定的文件‘

    原因:重命名需要把文件路径带上 源码: for file in files: print(file) os.rename(file, file.replace(beforename, afternam ...

  2. TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合

    \3c span id="mce_marker" data-mce-type="bookmark">\3c /span>\3c span id=&q ...

  3. DBeaver连接mysql时,报错Public Key Retrieval is not allowed

    解决 在新建连接的时候,驱动属性里设置 allowPublicKeyRetrieval 的值为 true.

  4. 网站支持https之一:https原理和SSL证书类型

    1 https原理 https加密请求过程 Client和Server之间会进行一下几个步骤的交互: ① Client发送https请求: ② Client和Server通过tcp的三次握手建立连接, ...

  5. MD5加密BASE64加解密

    MD5需要引入system.Hash,BASE64需要引入System.NetEncoding,这两个单元应该只有高版本的DELPHI IDE才有 (貌似XE5以上版本才有).如果是D7的话,找第三方 ...

  6. CSAPP学习笔记——chapter9 虚拟内存

    CSAPP学习笔记--chapter9 虚拟内存 虚拟内存提供三个重要的功能.第一,它在主存中自动缓存最近使用的存放磁盘上的虚拟地址空间的内容.虚拟内存缓存中的块叫做页.对磁盘上页的引用会触发缺页,缺 ...

  7. Windows 延缓写入失败及解决方法

    场景重现 某天系统弹出警告:某盘符延缓写入失败 解决办法 [Win + R]或手搓打开cmd.exe,键入chkdsk: 然后等待校检完成. 完成之后到警告提示对应的盘符下进行查错并修复 然后等待检查 ...

  8. 创建windows脚本bat/cmd或jar为windows服务完整教程

    ​ 一.将windows bat/cmd脚本创建为windows服务 1.下载winsw工具 https://gitee.com/colinisg/winsw/releases/download/v2 ...

  9. CH9121替换注意事项

    CH9121A 基于前版CH9121(无后缀字母)升级,引脚基本兼容,替换时需调整外围电路. 升级内容: 精简供电方式由3.3&1.8v双电源供电改为3.3v单电源供电: I/O 口支持3.3 ...

  10. Jmeter参数化总结

    参数化步骤: 1.连接数据库 2.获取account表手机号数据 3.获取手机号个数 4.增加For Each控制器 5.将请求添加至循环控制器里面 脚本:循环登录.jmx 页面如下: 下面主要说明F ...