上一篇介绍了我的SpringBootStarter项目,它可以让我们通过注解的方式轻松获取运行日志,并推送到指定的数据源。之前,我的项目是在Github上开源的。如果要使用我的项目,必须在Maven的Setting.xml中配置Github仓库,一点都不方便。在这篇文章中,我将把项目上传到公共Maven仓库的过程整理成一篇教程文章。不得不说,上传公共Maven仓库还是挺麻烦的,差点没把我的怒火给灭了。《萌新写开源》系列文章持续更新:《萌新写开源01》如何使用注解优雅记录操作日志注解支持重复注解,解码字符不易,敬请关注!公众号:说说后端技术,全网博客名:漫散道江网上可以找到很多关于整体流程的文章,主要有以下几个步骤:提交发布工单(Issue)在sonatype中,配置gpg秘钥,配置pom.xml和setting.xmlmvncleandeploy你肯定会问,sonatype和公共Maven仓库有什么关系?为什么需要在sonatype中操作?Maven中央仓库不支持直接发布jar包。我们需要把jar包发布到一些指定的第三方Maven仓库,然后仓库会把jar包同步到Maven中央仓库。其中,“简单”的方式是通过SonatypeOSSRH仓库发布jar包。接下来介绍如何将jar包发布到SonatypeOSSRH。另外,有一点要重申:网上的教程都是时效性的,包括这篇文章(这篇文章写于2021年12月)。所以最好的办法就是按照官网的文档,然后配合网上的教程解决问题,因为官网的文档永远是最新最好的解决方案。直接按照博客教程走弯路可能要花很长时间。官网文档地址:(这是你最应该看的文档之一)https://central.sonatype.org/...好了,我们就按照上面的官方文档一步步来吧。第一步在sonatype中提交工单,首先需要在sonatype网站上注册一个账号:https://issues.sonatype.org/s...!default.jspa创建好,登录,点击新建在页面顶部提交新问题。下图是我创建时填写的内容,大家可以参考一下。主要有几个地方需要注意:问题名称,只要意思表达清楚即可,groupId一定要写准确,PorjectURL一定要填写Github仓库地址。提交的SCMurl需要在Github仓库地址后加上git后缀。这是一个全自动的机器人,会自动回复你。它要求您证明您拥有groupIdURL的所有权。比如我填写cn.monitor4all,那么我会在monitor4all.cn网站上添加一个指向这个Issue的TXT解析(值写成OSSRH-xxxxx)。如果你的groupId是com.github.xxx,则不需要执行以上步骤。所以如果你没有域名,或者觉得麻烦,就用com.github.xxx吧。由于我的网站域名是自己购买的,由腾讯云解析,所以我去腾讯云添加了一个TXT解析值,写为OSSRH-75759。(我的票地址是https://issues.sonatype.org/b...)等几分钟让sonatype检测你的域名所有权。配置gpg密钥的第二部分,需要设置gpg密钥,官网gps密钥签名教程:https://central.sonatype.org/...你一定很好奇什么是GPG,GPG是一个RSA算法实现。1991年,程序员PhilZimmermann为了躲避政府监控,开发了加密软件PGP。这个软件非常好用,传播也很快,成为很多程序员必备的工具。但是,它是商业软件,不能随意使用。因此,自由软件基金会决定开发PGP的替代品,命名为GnuPG。这就是GPG的用武之地。由于sonatype允许你上传到公共仓库,它必须验证你是一个“人”。防止其他恶意人员上传Jar包。我们去官网下载GunPGhttps://www.gnupg.org/download/有各种系统的版本可以下载,我下载的是macOS版本。安装完成后,我们打开ssh,输入命令:?~gpg--generate-key然后按照操作生成秘钥。下面是我生成的结果,输入代码:gpg(GnuPG/MacGPG2)2.2.32;版权所有(C)2021FreeSoftwareFoundation,Inc。这是免费软件:您可以自由更改和重新分发它。在法律允许的范围内,不提供任何保证。注意:使用“gpg--full-generate-key”来获得功能齐全的密钥生成对话框。GnuPG需要建立一个用户ID来识别您的密钥。真实姓名:xxxxxxx电子邮件地址:xxxxxxx@foxmail.com您选择了这个用户ID:“xxxxxxxx”更改名称(N),评论(C),电子邮件地址(E)或确定(O)/退出(问)?u更改名称(N)、评论(C)、电子邮件地址(E)或确定(O)/退出(Q)?o我们需要生成大量随机字节。在质数生成期间做一些其他事情(击键、鼠标移动、磁盘访问等)是个好主意;这将使随机数生成器更有可能获得足够的熵。我们需要生成很多随机字节。在质数生成期间做一些其他事情(击键、鼠标移动、磁盘访问等)是个好主意;这将使随机数生成器更有可能获得足够的熵。gpg:密钥54EC3C8FA3A5B50F被标记为绝对信任gpg:目录'/Users/xxxxxxxxx/.gnupg/openpgp-revocs.d'已创建gpg:已撤销的证书已存储为'/Users/xxxxxxxxx/.gnupg/openpgp-revocs.d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.rev'公钥和私钥已生成并签名。pubrsa30722021-12-06[SC][有效期至:2023-12-06]8BDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxB50Fuidxxxxxxxxsubrsa30722021-12-06[E][有效期至:2023-12-06]秘密密钥生成后,需要将公钥上传到公网服务器进行sonatype验证。官网教程中提供了三个地址:keyserver.ubuntu.comkeys.openpgp.orgpgp.mit.edu我是按照官网给的方法上传的:?~gpg--keyserverpgp.mit.edu:11371--send-keys8BD96B0EA18E5162B94EA7F754EC3C8FA3A5B50Fgpg:将密钥54EC3C8FA3A5B50F发送到pgp.mit.edu:11371gpg:无法发送到公钥服务器:文件结尾gpg:无法发送到公钥服务器:文件结尾?~gpg--keyserverkeyserver...gpg--keyserverpgp.mit:11371--send-keys54EC3C8FA3A5B50Fgpg:将密钥54EC3C8FA3A5B50F发送到pgp.mit.edu:11371gpg:无法发送到公钥服务器:文件结尾gpg:无法发送到公钥服务器:结束offile但是报错,重试看了网上各种教程,还是报错。我认为这是我的网络问题,或者那些服务器出现故障。反正我查了一遍又一遍,整整一个晚上。快崩溃的时候无意中发现gunpg还有一个可以打开的应用,就是GUI界面,于是进去看了一下,然后右击我的秘钥,出现了一个上传到服务器的选项:成功了,无语了,兄弟们。配置pom.xml和setting.xml第三步,你需要按照官网的教程配置你的pom.xml和setting.xml文件。看到这里你已经很累了,所以我不再按照官网的教程一步步演示,直接总结一下成功需要添加的配置。第一个是setting.xml。您需要添加配置文件:ossrhtruegpg2yzdbwj1993还需要一个server,里面需要填写你ossrh的账号密码:ossrh你上面注册的账号你上面注册的密码setting.xml配置好了,下一步是你的项目pom.xml。首先需要声明很多插件,还有一个snapshotRepository,我这里都贴出来了。ossrhhttps://s01.oss.sonatype.org/content/repositories/snapshotsorg.sonatype.pluginsnexus-staging-maven-plugin<版本>1.6.7trueossrhhttps://s01.oss.sonatype.org/trueorg.apache.maven.pluginsmaven-source-plugin2.2.1attach-sources<目标><目标>jar-no-forkorg.apache.maven.pluginsmaven-javadoc-plugin<版本>2.9.1版本><配置>${java.home}/../bin/javadoc配置>attach-javadocs编号><goals>jarorg.apache.maven.pluginsmaven-gpg插件1.5sign-artifactsverifysign注意,maven-javadoc-plugin插件添加后,最好添加官方教程,没有提到要:<配置>${java.home}/../bin/javadoc否则可能会编译失败,提示找不到你的JAVA_HOME环境变量,如下图:之后,您还可以添加一些您的个人信息:TheApacheSoftwareLicense,Version2.0http://www.apache.org/licenses/LICENSE-2.0。txtactablexxxxxxxxxYangxxxxxxxx@foxmail.com<组织>xxxxxxxxxxxmastergit@github.com:qqxx6661/logRecord.gitgit@github.com:qqxx6661/logRecord.gitgit@github.com:qqxx6661/logRecord.git正式打包发布终于万事俱备,可以执行最神圣的命令mvncleandeploy然后上传成功你的工单这时候也会更新一条消息:Centralsyncisactivatedforcn。监控4all。成功发布后,您的组件将在Centralhttps://repo1.maven.org/maven2/上对公众开放,通常在30分钟内,但对https://search.maven.org的更新最多可能需要四分钟小时。您的Jar包将在大约30分钟内拉取。下图是成功的截图。后记不知道大家看完文章有没有觉得麻烦呢?其实我自己看了写的文字,感觉步骤还是挺简单的。但是之前自己处理不了的时候,还是觉得挺痛苦的。希望我走过的弯路可以帮助大家少走大坑,更快的完成项目的上传。我是满三道江,目前在阿里搬砖的工程师。持续的创作离不开您的点赞、转发和分享!参考https://segmentfault.com/a/11...