SDK上传Maven Central——保姆式教学

news/2024/12/31 6:17:32/

1、前期准备

1、注册jira账号

https://issues.sonatype.org/

说明(便于理解账号作用)

OSSRH(Sonatype OSS Repository Hosting)是一个由Sonatype提供的免费的Maven中央仓库代理服务,允许开发者将他们的Maven构件发布到Maven中央仓库,从而使这些构件对全世界的开发者都可用。

为了使用OSSRH,开发者需要先创建一个账号,并申请一个Sonatype JIRA账号,然后将构件上传到OSSRH,通过JIRA账号将构件提交到审核队列。审核通过后,构件将自动转移到Maven中央仓库中,供全世界的开发者使用。这个过程一般称为Maven Central Repository Sync。

2、账号注册完后需要创建申请

接下来进行相关信息填写:

概要:认真填写基本不会有问题,无太多讲究。

Group Id:与项目的Group Id需要保持一致,自己有域名就填自己的域名,如域名为:example.com,则该处填 com.example。若为gitee或github等,按其下面提示连接填写即可。

Project URL: 填代码仓库地址,例如gitee和github等直接定位到项目的链接https://gitee.com/coderzhang2001/excel-sdk的形式,无”.git“后缀。一般为人访问浏览的地址。

SCM URL: 填Project URL+.git的形式,如:https://gitee.com/coderzhang2001/excel-sdk.git。该url用于机器访问和操作。

3、处理申请

     在第二步提交申请后,系统会安排经办人来处理你的申请,没什么特殊问题的话一般都是机器人对你的申请进行处理,流程如下:

对你填写的Group Id进行认证,此步骤用于确保使用的域名属于你本人。

第一步:需要进入自己的服务器服务商提供的管理台,为自己的域名添加TXT记录,记录值便是自己提出申请的标识,如我这是OSSRH-90090。

第二步:可能第一次使用的人不知道什么意思,我一开始也是,实际上就是将自己当前申请设置为Open状态(下图箭头处)。因为当你收到这条信息的时候,你的状态已经被修改为了Waiting for Response(刷新页面后可见)。

当你完成后,机器会自动进行审核(可能需要稍等一小段时间),审核通过后你的申请会变成“已解决”状态并会再发邮件给你,内容大致如下图:

至此,你以及成功完成了前期的准备工作。


接下来,我们可以开始着手项目发布了。

2、GPG签名maven

1、进行maven项目构件签名,以此保证项目的安全性和完整性。

这里需要使用GPG加密,步骤如下(windows教程):

下载地址:https://gnupg.org/download/

下载完成后,启动软件进行GPG证书创建:

接下来填写信息:

进行勾选“使用密码句……”,点击确认后进行输入passphrase,这个需要记住,之后需要用:

接下来右键证书,导出公私密钥文件:

接下来将公钥文件中的公钥发布到OpenPGP Keyserver中,这步非常重要!!!不然之后需要返工。

3、进行maven配置

1、settings.xml配置

首先需要在maven的conf/settings.xml中配置自己的ossrh认证信息以及GPG私钥文件路径之前设置的passphrase

    <server><id>ossrh</id><username>{jira-username}</username><password>{jira-password}</password><privateKey>{/path/xxx_SECRET.asc}</privateKey><passphrase>{certificate-passphrase}</passphrase></server>

2、pom.xml配置

这里的配置非常重要,之后会有审核。

<name>xxxx</name><groupId>{Your-OSSRH-GroupId}</groupId><artifactId>xxxx</artifactId><version>xxx</version><url>xxxxxx</url><description>xxxxx</description><licenses><license><name>Apache License, Version 2.0</name><url>https://www.apache.org/licenses/LICENSE-2.0.txt</url><distribution>repo</distribution></license></licenses><developers><developer><name>xxx</name><email>xxx</email><roles><role>Developer</role></roles></developer></developers><scm><url>{OSSRH中的Project URL}</url><connection>{OSSRH中的SCM URL}</connection></scm><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties>
​
​<dependencies>……</dependencies>
​
​<profiles><profile><id>default</id><activation><activeByDefault>true</activeByDefault></activation><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/service/local/staging/deploy/maven2/</url></repository></distributionManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>{your-jdk-version}</source><target>{your-jdk-version}</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><id>attach-sources</id><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>3.3.1</version><configuration><encoding>UTF-8</encoding></configuration><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><version>1.5</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin></plugins></build></profile></profiles>

注意: 由于上传到maven central的maven构件均有严格的规范要求,因此以上配置基本均不可少,少了就容易审核不过再返工。切记!切记!

PS:maven对javadoc的规范有严格要求,因此每个方法均必须有javadoc注释,若没有注释在deploy时会报错。

在以上内容均配置完后便可进行部署了,可使用命令行执行mvn clean deploy或者idea可视化执行。

4、发布

登录Nexus Repository Manager,账号密码无需组测,使用之前注册的jira账号。

若mvn deploy顺利的话,按下面步骤可见到自己发布的maven构件,按下图步骤进行:

一般这时候都会检测到问题,问题主要有两个方面:

1、jar包漏洞

点击closed之后会有邮件发送过来,会报告你的maven项目中存在多少漏洞,根据提示更改jar包版本直到整个项目无漏洞为止。

2、maven信息不足

一般这里都是pom.xml中的配置问题,可在Activity中进行查看审核不通过的项,之后按照提示进行配置pom.xml中的信息即可。

        如果上面两个问题都解决了,那就基本完成了,等待审核通过之后,点击release之后等待几十分钟就会有邮件提示,一切就大功告成了。

以上便是上传自己的SDK到Maven Central的全部步骤了。

一些感想:

我在做这个的时候也是看着博客跟着做,但由于我使用的jdk17以致于pom.xml中加了nexus-staging-maven-plugin之后,报"无法访问java.util.Comparator……"的错误,找遍全网问了好久chatgpt试过各种方法都没有解决,深感网上这类博客太少,为了避免下次再遇到相同的问题解决老半天,写这篇博客以供下次使用,大家有问题可在下面留言(●ˇ∀ˇ●),我看到了都会进行回复。


http://www.ppmy.cn/news/963415.html

相关文章

AI,正在疯狂污染中文互联网

推荐阅读&#xff1a;16 款 ChatGPT 工具&#xff0c;太炸裂了&#xff01; 转自&#xff1a;量子位 | 公众号 QbitAI污染中文互联网&#xff0c;AI成了“罪魁祸首”之一。 事情是这样的。 最近大家不是都热衷于向AI咨询嘛&#xff0c;有位网友就问了Bing这么一个问题&#xff…

ChatGPT Plus停售 留出防治AI风险空窗期

能体验GPT-4模型的ChatGPT&#xff0c;因需求量太大而暂停了升级为Plus的功能&#xff0c;算力似乎爆表了。 这下&#xff0c;有钱都没地儿充会员了&#xff0c;用户们暂时需要回到“GPT-3.5时代”。这或许留给人类一个空窗期&#xff0c;可以好好思考一下前段时间上千名科技精…

ChatGPT背后的开源AI框架Ray,现在值10亿美元

机器之心报道 编辑&#xff1a;泽南、小舟 Ray 被 OpenAI、亚马逊等科技公司用来开发大模型&#xff0c;是最近异军突起的框架。 最近一段时间&#xff0c;文本生成的人工智能在互联网上掀起了一阵风暴&#xff1a;ChatGPT 因为可以对人们能想到的几乎任何问题提供非常详细、近…

图灵奖得主LeCun评ChatGPT不算创新,被网友骂柠檬精

“ChatGPT并不算创新。” “OpenAI做的这个东西跟其他实验室相比&#xff0c;根本算不上什么进步。” 这两天&#xff0c;图灵奖得主LeCun公开和大热趋势“唱反调”&#xff0c;瞬间引发网友围观。 要知道&#xff0c;ChatGPT功能强大又好玩&#xff0c;火爆全网&#xff0c;任…

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

文章目录 前言 - 浅谈 AIGCAIGC - 引领人工智能走向春天春天里盛开的 AI 绘画AI 绘画之Stable Diffusion 2.0 登场人人都有机会成为前沿的技术探索者 基于Amazon SageMaker进行Stable Diffusion 模型部署认识 Amazon SageMaker借助 Amazon SageMaker 进行环境搭建和模型推理1. …

ChatGPT会干掉.NET吗,我们该如何应对挑战?

GPT是一个大型的自然语言处理模型&#xff0c;一推出便受到广泛好评。微软也是OpenAI的合作伙伴&#xff0c;借助这层关系首先在它的搜索引擎&#xff08;bing.com&#xff09;上使用了GPT的技术&#xff0c;最近又把GPT-4准备加入到程序员大本营Github&#xff0c;微软最近开源…

ChatGPT是.NET开发效率提升的双刃剑?

GPT是一个大型的自然语言处理模型&#xff0c;一推出便受到广泛好评。微软也是OpenAI的合作伙伴&#xff0c;借助这层关系首先在它的搜索引擎&#xff08;bing.com&#xff09;上使用了GPT的技术&#xff0c;最近又把GPT-4准备加入到程序员大本营Github&#xff0c;微软最近开源…

上市即销售一空,紧急加印 | ChatGPT之父 Sam Altmam强烈推荐的神书!

解密ChatGPT&#xff0c;第一本诠释ChatGPT运作方式的大师级著作来了❗Wolfram Research软件公司创始人兼首席执行官斯蒂芬沃尔弗拉姆著作OpenAI CEO、ChatGPT之父 Sam Altman强烈推 《这就是ChatGPT》系列专场直播 点击预约