如何发布jar包到maven中央仓库(2024年6月最新版含如何对原Jira系统内数据进行迁移)

1.准备工作

1.1 进入系统注册账号

https://central.sonatype.com/

点击右上角 Sign-in登录

如果是首次登陆,需要点击Sign-Up注册账号

2.命名空间管理

2.1 注册Namespaces

点击右上角自己的账号->选中View Namespaces

进入命名空间列表后,点击Add Namespace,然后输入自己的命名空间名称

注:此处的命名空间名称对应的是自己项目里的GroupId

如果命名空间是之前JIRA系统存在,则参考第4章请求官方协助数据迁移。

2.2 校验Namespaces

按照提示完成域名身份校验

To prove the ownership of this Namespace, a DNS TXT Record is required with the same value that matches its Verification Key(ticket-123).For the Namespace org.spring.io you will need to create TXT Record:

ticket-123

Domain Registrars services have different procedures for adding a TXT Record, please check your registers documentation to find out how to add a TXT Record.

注意:此处添加TXT记录时,主机记录为:@,记录值为:ticket-123

添加成功后,打开如下地址验证域名baidu.com*(改成你自己的域名)*

https://www.whatsmydns.net/dns-lookup/txt-records?query=baidu.com&server=google

如果DNS记录可以查到,说明配置成功,就可以完成校验

TXT records for baidu.com:

RecordTypeValueTTL
baidu.comTXT“ticket-123”499

3.Maven发布

3.1 启用Token用户

选择 View Account,然后点击Generate User Token,即可生成maven发布专用用户。

3.2 GPG证书申请

参考文章

3.3 Maven pom 添加配置 (以Github Action方式正常运行)

<profiles><profile><id>release</id><build><plugins><plugin><groupId>org.sonatype.central</groupId><artifactId>central-publishing-maven-plugin</artifactId><version>0.5.0</version><extensions>true</extensions><configuration><publishingServerId>central</publishingServerId><autoPublish>true</autoPublish></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>3.3.0</version><executions><execution><id>attach-sources</id><phase>verify</phase><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>3.6.3</version><executions><execution><id>attach-javadoc</id><goals><goal>jar</goal></goals></execution></executions><configuration><stylesheet>java</stylesheet><doclint>none</doclint></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><version>3.1.0</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions><configuration><gpgArguments><arg>--pinentry-mode</arg><arg>loopback</arg></gpgArguments></configuration></plugin></plugins></build></profile></profiles><build><plugins><plugin><groupId>org.sonatype.central</groupId><artifactId>central-publishing-maven-plugin</artifactId><version>0.5.0</version><extensions>true</extensions><configuration><publishingServerId>central</publishingServerId><autoPublish>true</autoPublish></configuration></plugin></plugins></build>

3.4 Github Action脚本

name: Publish package to the Maven Central Repository
on:release:types: [created]
jobs:publish:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- name: Set up Maven Central Repositoryuses: actions/setup-java@v4with:java-version: '8'distribution: 'temurin'server-id: centralserver-username: MAVEN_USERNAMEserver-password: MAVEN_PASSWORDgpg-private-key: ${{ secrets.GPG_SECRET }}gpg-passphrase: MAVEN_GPG_PASSPHRASE- name: Publish packagerun: mvn -P release --batch-mode deploy -DskipTestsenv:MAVEN_USERNAME: ${{ secrets.OSSRH_USER }}MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSWORD }}

Github Action secrets 如何使用请自行度娘。

4.JIAR 数据迁移

4.1 使用邮箱注册账号

如果你还记得JIRA注册时使用的邮箱,可以使用该邮箱联系central-support@sonatype.com

如果不记得JIRA注册时使用的邮箱,则需要使用已经注册的新账号绑定的邮箱联系官方通过DNS方式验证身份后,官方会协助迁移通过DNS验证的域名。

4.2 协助沟通邮件记录(新邮箱)

确认自己身份,请求协助

I’M authorized publisher. , but my old email : xxx can’t login.

I have login in new system by username & password ,

can provide other ways to check authorized publisher. ,eg: doamin add txt record

you can provide String code , I Add txt record to config.

获得官方回复

Hello,

Can you do the following:

  • Create a user for xxx on https://central.sonatype.com/
  • add the Domain TXT record ticket-12345 to com.baidu

此处com.baidu就是之前JIRA系统申请GroupId时使用的域名,新系统只需要注册一次即可,不用每个GroupId单独申请

Regards,
The Central Team

接下来我们只需要按照2.2章节配置DNS,然后给官方发送邮件

hello ,Try again

I have correctly configured the domain name Txt record for :baidu.com

https://www.whatsmydns.net/dns-lookup/txt-records?query=baidu.com&server=google

接下来我们就等候官方回复邮件

Hello ,

Apologies for the confusion, we are up to date on the thread.

We migrated your namespace as requested:

  • your user account on s01.oss.sonatype.org can no longer be used to create deployments for the com.baidu namespace
  • your account on central.sonatype.com associated with 你的新邮箱 has been updated to include the com.baidu namespace

Please login to Central Portal and confirm you see com.baidu as verified under your list of namespaces. After this you could follow the publishing instructions in our documentation to publish your components.

If you have any other question please feel free open a new request.

Thank you,
The Central Team

看到这个邮件后,我们就可以使用新账号登录新系统,然后看到对应的namespace官方已经帮我们

迁移到新账号下面了。

4.3 如果需要使用JIAR继续发布的参考如下步骤(供参考未验证)

若是在2024年6月前还正常上传, 在6月突然不行了. 很大原因是原来使用用户名,密码,现要在使用token了.

将maven的settings.xml,

ossrh username password

改为:

ossrh token-username token-password

问题是如何创建token的name及password.

使用原JIRA账号登录旧的url,并在以下地址,创建token即可.

https://oss.sonatype.org/#profile;User%20Token

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软考论文】项目背景及论文模版

目录 一、项目核心功能二、论文模板一、项目核心功能 二、论文模板 论文字数说明 总字数 2500 = 500 + 400 +400 * 3 + 300 背景:500 回答问题:400 三段论:1200 = 400 * 3 结论:300 ~ 400 摘要(<300字) 本人于2022年1月参与了某车厂的全渠道数字化精准营销平台项目,该…

Spring Boot中实现定时任务最常用的方法 @Scheduled 注解和 TaskScheduler 接口【包含详情代码】

Spring Boot中实现定时任务最常用的方法 Scheduled 注解和 TaskScheduler 接口【包含详情代码】 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中………

全局mixins

一、文章由来 在开发过程中发现在钩子函数位置直接使用dicts就能直接绑定数据了&#xff0c;由此溯源发现了自己的盲区 二、局部使用 // myMixin.js文件 var myMixin {created: function () {this.hello()},methods: {hello: function () {console.log(hello from mixin!)…

Python数据分析第二课:conda的基础命令

Python数据分析第二课&#xff1a;conda的基础命令 1.conda是什么? conda是一个开源的包管理系统&#xff0c;可以帮助我们进行管理多个不同版本的软件包&#xff0c;还可以帮助我们建立虚拟环境&#xff0c;以便对不同的项目进行隔离。 简单来说&#xff0c;conda是一个软…

spacedesk

一、下载链接 spacedesk.zip - 蓝奏云 二、windows10投屏安卓 windows安装server&#xff0c;安卓安装apk 三、windows10投屏到windows10 发现存在台式机不支持投影&#xff0c;所以有了这个。 投影端 windows安装server版 spacedesk_driver_Win_10_64_v2119.msi 接收端…

守护生产车间安全:可燃气体报警器预警与检测的重要性

近日&#xff0c;东莞一材料厂发生的火灾事故再次敲响了工业安全生产的警钟。 这起事故不仅给工厂带来了巨大的经济损失&#xff0c;也暴露了一些企业在安全管理方面的疏漏。其中&#xff0c;可燃气体报警器的应用与预警功能在火灾防范中扮演了至关重要的角色。 接下来&#…

[分布式网络通讯框架]----RpcProvider实现

在上一节userservice.cc的主函数中&#xff0c;我们初始化以后实例化了一个RpcProvider对象provider。接着调用了它的NotifyService(new UserService)方法&#xff0c;将UserService服务对象及其提供的方法进行预备发布。发布完服务对象后再调用Run()就将预备发布的服务对象及方…

【Docker】可视化平台Portainer

文章目录 Portainer的特点Portainer的安装步骤注意事项 Docker的可视化工具Portainer是一个轻量级的容器管理平台&#xff0c;它为用户提供了一个直观的图形界面来管理Docker环境。以下是关于Portainer的详细介绍和安装步骤&#xff1a; Portainer的特点 轻量级&#xff1a;P…

企业级Windows设备日志采集工具

永久免费: 前往Gitee最新版本 更新内容 进一步提升工程师部署采集客户端效率. 打开根Url,自动跳转到部署页面.(原工程师需输入很长的Url);新增复制同类客户端同步任务功能.优化客户端分组操作;文件同步到服务器后,可配置文件名增加时间戳; 介绍 定时全量或增量采集工控机,…

项目分层--简单图书管理系统

分层情况 实体类Book代码 //实体类 public class Book {private int id;private String name;private int bsum;public Book() {}public Book(int id, String name, int bsum) {this.id id;this.name name;this.bsum bsum;}public int getId() {return id;}public void set…

9.2JavaEE——JDBCTemplate的常用方法(三)query()方法

JdbcTemplate类中常用的查询方法 方法说明List query(String sql, RowMapper rowMapper)执行String类型参数提供的SQL语句,并通过参数rowMapper返回一个List类型的结果。List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)根据String类型参数提供的S…

9. Revit API UI: UIView、UIDocument、框选聚焦

9. Revit API UI: UIView、UIDocument、框选聚焦 UI命名空间下的API&#xff0c;到这里差不多就押送讲完了&#xff0c;同Application那篇所讲的几个类与接口&#xff0c;都是带UI的对应了一个不带UI的&#xff0c;如UIApplication和Application&#xff0c;作用呢&#xff0c…

Jenkins 下使用 Node 和 Npm(借助 nvm-wrapper 插件)构建前端程序

一、前言 搭建完Jenkins后&#xff0c;如何使用node进行构建前端呢&#xff0c;多个项目会使用的node的多个版本。如何动态指定node的版本进行构建呢。 方案一&#xff1a; 安装多个node版本&#xff0c;然后进行指定。这样比较麻烦。 方案二&#xff1a; 使用Jenkins的nv…

Spring相关面试题(三)

29 如何在所有的BeanDefinition注册完成后&#xff0c;进行扩展 Bean工厂的后置处理器&#xff0c;在所有的Bean注册完成后&#xff0c;就被执行。 public class A implements BeanFactoryPostProcessor {private String name "a class";private B b; ​public St…

ARM芯片架构(RTOS)

前言&#xff1a;笔记韦东山老师的rtos教程&#xff0c;连接放在最后 #ARM介绍 arm芯片属于精简指令集risc&#xff0c;所用的指令比较简单&#xff0c;ARM架构是一种精简指令集&#xff08;RISC&#xff09;架构&#xff0c;广泛应用于移动设备、嵌入式系统、物联网等领域。AR…

Linux:简单说说分号“;”、单竖线“|”、双竖线“||”、单“”、双“”作为多个命令分隔符的用法

以下符号都可以用来连接多个命令&#xff0c;在一行中作为多个命令的分隔符。区别如下&#xff1a; 1、分号“;” 按照先后顺序执行命令。每个命令都会在前一个命令执行完毕后立即执行。 如果其中一个命令出现错误&#xff0c;后续命令仍然会继续执行。 2、单竖线“|” 作为管…

2. jenkins发布java项目

jenkins发布java项目 一、环境描述二、部署tomcat业务服务器三、部署git服务器&#xff0c;上传测试代码1、部署git服务器2、上传测试代码 四、jenkins对接组件1、安装必要的插件2、对接git客户端3、对接maven工具4、配置maven需要的jdk5、配置gitlab服务器的连接6、在jenkins上…

1161. 最大层内元素和

1161. 最大层内元素和 题目链接&#xff1a;1161. 最大层内元素和 代码如下&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr)…

AI智能体文章索引

1&#xff0c;探索AI世界系列&#xff1a;俗说AI智能体 2&#xff0c;是真的吗&#xff0c;不会代码也能开发一款AI应用&#xff1f;GPTs让人梦想成真 3&#xff0c;来了&#xff0c;你的第一个AI智能体 4&#xff0c;制作一个智能体&#xff1a;抖音热点话题文案制作助手 5&am…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库&#xff0c;以及创建好项目之后&#xff0c;以及前端静态文件后&#xff0c;对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作&#xff0c;获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…