发布jar包到maven中央仓库

【Nexus】Sonatype Nexus Repository 搭建过程记录 Sonatype Nexus Repository(通常简称为 Nexus )是一个由 Sonatype 开发的仓库管理工具,它被广泛用于管理和托管各种软件构件,如 Maven 构件、Docker 镜像等。 阅读详情

一、写在前面

最近做了一个权限认证的框架,想把jar发布到maven中央仓库上,方便大家使用。于是就有了这篇博客。

二、具体步骤

2.1 注册账号

首先要做的就是注册账号,这个账号可用于提出申请groupId的Issue,也可用于发布和登录到中央仓库。

2.1.1 注册sonatype

工单地址:https://issues.sonatype.org
注册

2.2 申请groupId

创建申请groupId的工单
申请groupId
工作人员会审核你的申请,如果你的groupId是你的域名,还需要提供一些证明。如果没有域名也可以使用一些开源网站,例如com.github.xxx,io.github.xxx等。
如果审核时间很长的话,可以尝试再次提交一个工单。工作人员在审核的时候可能根据最近的Issue来的。

2.3 配置GPG

这次我用的mac,所以我使用brew安装的gpg。

brew install gpg

然后建立软连接到/usr/local/bin/

sudo ln -s /usr/local/Cellar/gnupg/2.2.7/bin/gpg /usr/local/bin/gpg

因为我使用的版本是2.2.7,加密多次失败后。网上查到需要进行一些额外配置。
在gpg的安装目录(~/.gnup)下新建两个配置文件:
gpg.conf:

use-agent
pinentry-mode loopback

gpg-agent.conf:

allow-loopback-pinentry

2.4 生成秘钥

执行命令,并填入一些信息后生成秘钥

gpg --gen-key

gpg --list-keys

pub   rsa2048 2018-05-18 [SC] [有效至:2020-05-17]
      xxxxx
uid           [ 绝对 ] sunbufu <sunyoubufu@qq.com>
sub   rsa2048 2018-05-18 [E] [有效至:2020-05-17]

发布公钥到服务器

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys xxxxx

2.5 配置settings.xml

首先需要配置用户名和密码(2.1.1中注册的用户名和密码)

<server>
    <id>ossrh</id>
    <username>用户名</username>
    <password>密码</password>
</server>

2.6 配置pom.xml

使用发布使用的parent。

<parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
</parent>

如果不方便也可以自己设置插件的方式(注意我的pom是parent,所以如果不是parent需要把pluginManagement标签去掉)。

<build>
    <pluginManagement>
        <plugins>
            <!--指定编译器版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <!--打包源码-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <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>2.10.3</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</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>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--指定上传仓库-->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.3</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

2.7 部署

在项目目录下执行部署命令

mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=密钥密码"

这是最容易出问题的一部,其中我就遇到了权限不足等问题,记录在此:
1. 认证不通过:查看是否修改maven中的settings文件。因为使用的命令发布,所以settings文件会直接使用maven中默认路径下的文件。
2. gpg加密失败:查看gpg安装情况,并确认版本,看是否有进行额外配置(核对2.3)。

2.8 发布

release
1. 访问https://oss.sonatype.org/#stagingRepositories
登录后在Staging Repositories中查看上一步部署上去的项目。
2. 选中后点击Close,这时服务器会对你的项目进行一些检查,如果有问题的话会提示,并且无法进行下一步。
3. 选中后进行Release,至此我们的操作全部完成。剩下的就是等待服务器的一些同步之类的操作了。
大约2个小时后,你就可以搜索到你的项目了。
搜索结果

三、总结

此次发布断断续续的进行了两天左右,因为是第一次发布到中央仓库,所以遇到了很多没有预想到的问题。特此记录下来,希望能给更多的人一些帮助吧。

Maven 2024年3月大改版后,我该如何把自己的jar包发布到中央仓库? 本文介绍了在2024年3月Maven中央仓库改版之后,如何发布自己的jar包。还介绍了如何使用github action自动化发布流程。 阅读详情

相关推荐

发布自己的jar包到Maven中央仓库

Maven仍然是目前使用人数很多的、非常受欢迎的项目构建工具。其方便之处在于:我们只需在配置文件pom.xml中引入依赖和插件,他就可以自动从中央仓库下载、配置并运行程序。不过假设我们自己写了一个jar外部包,想放到maven中央仓库并使得别人和我们自己使用的时候更加方便,应该怎么做呢? 一,去sonatype网站注册账户并申请工单 进入issues.sonatype.org,注册一个账户,然后点击“新建”按钮创建一个工单: 如下图,项目选择:Community S...

yanhanhui1的博客 1565

发布 Maven 构件到中央仓库【转载】

发布 Maven 构件到中央仓库

白云 1932

发布 jar 包到 maven 中央仓库

目前开发基本都是以maven或者gradle的方式,直接引入依赖包即可,那么该咋那么发布我们自己的jar包到maven仓库,让别人使用呢?本文适用于2024.3之后的步骤。

蔡定努 876

Sonatype Nexus安装

什么是Sonatype Nexus Sonatype Nexus 是Maven仓库管理器、它可以节省网络带宽也会加速项目搭建的进程。 简单来说就是管理jar包的仓库,如果你们公司有自己开发的jar包,可以上传上去,当项目需要用到这个jar包的时候只需要去这个仓库里下载该jar包到项目中使用就好。 当然,不仅仅是自己开发的jar包,还可以配置其他远程maven仓库站点,比如你想使用fastjson.jar,它会从其他远程maven仓库站点下载到仓库里再传给你,相当于一个中转站,下次你再下载就会很快。 安装前的

西凉的悲伤博客 5743

OMNET++ INET框架学习教程(一)

在自组网学习的道路上摸石头过河,帮你快速入门OIMNET++平台下的INET框架。

NLDwangzhe的博客 6565

SocraticLM: Exploring Socratic Personalized Teaching with Large Language Models

大型语言模型(LLM)被认为是推进智能教育的一项关键技术,因为它们展示了深入理解教学场景和为学生提供个性化指导的潜力。然而,当前个性化教学中基于LLM的应用主要遵循“问答”范式,学生被动地获得答案和解释。在本文中,我们提出了苏格拉底式教学模式(SocraticLM ),它实现了一种苏格拉底式的“发人深省”的教学范式,实现了真正的课堂教师的角色,让学生积极参与到真正掌握解决问题所需的思考过程中。

weixin_43961909的博客 2883

Sonatype Nexus搭建Maven私服

私服就是企业搭建供内部使用的一个Maven仓库,实现企业内部依赖的共享,具有降低中央仓库负荷、节省外网宽带和提高项目稳定性等优点。实际开发中服务器不能访问公网,可以通过一台能访问外网的服务器作为代理服务器下载需要的依赖。Nexus是Sonatype公司发布的一款仓库管理软件,常用于搭建Maven私服

liu320yj的博客 4870

Lumerical官方案例、FDTD时域有限差分法仿真学习(十八)——Y分支粒子群算法优化

组件优化是任何致力于开发高性能光子器件的设计过程的关键步骤。 此绝缘体上硅 Y 分支示例演示了适用于任意优化例程的通用组件形状参数化方法。 此示例中的算法是 Lumerical 的内置粒子群优化 (PSO),可通过用户界面轻松设置。 此外,建议的优化过程展示了如何将 varFDTD 与全 3D FDTD 求解器相结合,以显着减少优化时间,同时保持高精度。

weixin_45719141的博客 1万+

将项目发布到 maven 中央仓库sonatype

1注册sonatype账号 官方网站:http://www.sonatype.org/ 注册地址是 https://issues.sonatype.org/secure/Signup!default.jspa 注册 工单创建 1> 访问sonatype并注册账号 https://issues.sonatype.org ,注意要记住账号密码,会用于我们后续的发布及相关操作 2> 如图新建...

牧竹子 5931

[UE5蓝图基础二]1.[1d混合空间] 走和跑的动画切换(shift切换)

再双击”run”进去 我们需要给他指定一个动画姿势,这里就需要给他我们前面做的”1d”混合空间,然后可以看到”1d” 上有个speed参数,代表的速度 从前面的逻辑来看需要通过控制速度来切换动画,那么必然不能写死速度,把速度提升为变量传递进来即可,所以就得到以下蓝图节点。混合空间的概念:混合空间就是可以将角色多个动画混合在一起 ,我们创建动画类就是创建个”Animation”文件夹 在文件夹内创建混合空间。我们目前要实现的是一个走和跑的功能 那么创建1d即可。到这一步混合空间已经做完 下一步做”动画蓝图”

qq_30584617的博客 3299

Inception-Resnet-v1、Inception-Resnet-v2学习笔记(附Pytorch代码)_inception-resnet-v1 代码

Reduction-B模块:输入8*8*1792,输出8*8*1792.IR-B模块*10:输入17*17*896,输出17*17*896.IR-A模块*5:输入35*35*256,输出35*35*256.IR-A模块*5:输入35*35*384,输出35*35*256.IR-B模块*10:输入17*17*896,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.

2401_89285791的博客 470

Maven公共中央仓库发布自己的Jar包

#中央仓库发布jar包流程

既无风雨也无晴 2万+

微信小程序返回按钮的隐藏玩法:用onShow实现数据自动刷新(附完整代码)

本文深入探讨了微信小程序中用户点击返回按钮后,如何利用onShow生命周期函数实现页面数据的自动刷新。文章对比了onLoad与onShow的差异,提供了从基础的本地存储标记到进阶的EventChannel事件通信,再到状态管理库的多种解决方案,并附有完整的代码示例,帮助开发者构建流畅的用户体验。

agile9scrum的博客 925

如何将JAR包发布到Maven中央仓库?

将jar包发布到Maven中央仓库(Maven Central Repository),这样所有的Java开发者都可以使用Maven直接导入依赖,例如fundebug-java: &lt;!-- https://mvnrepository.com/artifact/com.fundebug/fundebug-java --&gt; &lt;dependency&gt; &lt;groupI...

Fundebug博客 3049

ESP8266-Arduino网络编程实例-异步TCP客户端

本次实例将使用ESPAsyncTCP库实现一个简单的客户端。

视觉与物联智能 1741

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 5655

Maven - 发布JAR包到Maven远程中央仓库

声明:经过下面一系列操作之后,以后想发布新版本,只要修改好要升级的版本,然后在 Maven的 Lifecycle 里双击 deploy 即可~ 前言 自使用maven以来,没少使用maven中央仓库中的各种jar包,方便有效,但是咱们也不能总是只取不予,也应该懂得奉献,当你写好了一个十分好用的jar包,想贡献出去给大家使用的时候,应该怎么做呢?当然是发布到maven的中央仓库了,不过要说这...

4973

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

如何将jar包发布到maven中央仓库

写了多年的代码,总有一些自己的积累,或者自己写的好的工具,想分享出去,那么你就需要把你的jar包发布到maven中央仓库,如何发布到maven中央仓库,参照以下步骤! 步骤 工单管理 注册Sonatype的账户。地址:https://issues.sonatype.org 创建工单 项目类型:Community Support - Open Source Project Repository Hosting groupId: (1) 比如你申请 com.to...

yh88356656的专栏 1153

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

如何将Jar包发布到Maven中央仓库

本文详细介绍了将项目发布到Maven中央仓库的完整流程。并提供了替代标准Maven构建的方案说明,适用于非标准项目结构的发布需求。每个步骤都附有具体操作说明和注意事项,为开发者发布组件到中央仓库提供了实用指南。

xxxx_ssss的博客 999

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

多个jar_如何将JAR包发布到Maven中央仓库?

将jar包发布到Maven中央仓库(Maven Central Repository),这样所有的Java开发者都可以使用Maven直接导入依赖,例如fundebug-java: com.fundebug fundebug-java 0.2.0但是,Maven中央仓库并不支持直接发布jar包。我们需要将jar包发布到一些指定的第三方Maven仓库,然后该仓库再将jar包同步到Maven中央仓库。其...

weixin_30844603的博客 668

【记】 将jar包发布到maven中央仓库

参考链接: 如何使用maven打包并发布到中央服务器 打包到中央服务器主要分为以下的步骤, - 创建工单 - 生成密匙对 - 设置Maven配置 - 部署和发布Jar包 - 更新Jar包 一、创建工单 我们需要在Sonatype网站上提交一个工单,首先去https://issues.sonatype.org/secure/Dashboard.jspa网站创建一个工单(Issue...

weixin_42612454的博客 1284

Android 在不开源的情况下发布jar包到maven中央仓库

申请发布资格 由于需要一天时间审核,把这个放在第一步。 先在https://issues.sonatype.org注册账号。注册完成后回到首页点击顶部的create按钮开始创建申请单: Project:选择默认选项  Community Support - Open Source Project Repository Hosting (OSSRH) Issue Type:选择默认选项 ...

u012135000的博客 779

发布jar包到Maven中央仓库

平时自己开发的工具类或者其他的框架的jar包一般都是放在本地。或者把代码上传到github让别人去下载然后自己打包。今天就说说如何把自己的jar包发布到Maven的中央仓库。让其他使用你的jar包的直接去中央仓库下载。如果你用的是阿里云的maven中央仓库。同样阿里云的中央仓库也会同步你的jar包。 1 注册JIRA账号 注册地址:https://issues.sonatype.org/sec...

AILIKES 460
上一篇: Spring StateMachine
下一篇: authorize(基于注解的权限认证框架)
sunbufu
博客等级 码龄11年 17粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值