私有jar包发布到maven中央仓库

news2024/11/24 20:53:33

一、注册Jira

Sonatype JIRAhttps://issues.sonatype.org/secure/Dashboard.jspa

二、新建issue

提交后,等待5-10分钟,会收到中央机器人的评论,如下:

在这里,我没有自己的域名,此时:

1、机器人给我们分配了一个新的group id(如图第一个蓝色框)。于是再次编辑该issue,填入新分配的group id后提交即可。

2、机器人要求我们在项目托管平台新建一个它命名的开源项目(如图第二个蓝色框),并且把它公开。那我们去新建即可。

3、等你做完这些事的我时候,记得添加一条评论,告诉它你做完了。

又过了5-10分钟,机器人发来一条评论,告诉你你现在可以发布私有jar包到Nexus Repository Manager这个他们的nexus中去了,nexus的用户名和密码就是你Jira的用户名密码。

以上步骤,一是为了验证你是否是这个项目的所有人 ,二是为你开通了maven中央仓库的nexus的账号。

三、pom文件和settings文件配置,开始发布到nexus

pom文件

包名必须为issue中分配的,否则在maven clean deploy的时候根本无法上传成功。且除licenses外其它是必备的,否则在nexus发布的时候无法通过验证。

以及这些也是必须的:

<build>
        <plugins>
            <!-- 打成源码包 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- 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>
                    </execution>
                </executions>
                <configuration>
                    <additionalJOptions>
                        <additionalJOption>-Xdoclint:none</additionalJOption>
                    </additionalJOptions>
                </configuration>
            </plugin>
            <!-- Sonatype Nexus Repository Manager -->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <!-- GPG Signed Components -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <id>ossrh</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <!--发布到Maven中央仓库-->
    <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>

 settings文件

 <servers>
        <server>
            <id>ossrh</id>
            <username>user</username>
            <password>123456</password>
        </server>

        <server>
            <id>ossrh</id>
            <username>user</username>
            <password>123456</password>
        </server>
    </servers>

    <profiles>
        <profile>
            <id>ossrh</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <gpg.executable>gpg</gpg.executable>
                <gpg.passphrase>你的gpg密码</gpg.passphrase>
            </properties>
        </profile>
    </profiles>

备注:username和password为你的nexus账号密码,而gpg的key和密码由下面步骤生成的。

gpg是一个组件签名工具。这里需要安装git,并把git的gpg工具配置到path环境变量中。比如我gpg安装目录为:C:\Program Files\Git\usr\bin,需要把这个配置到环境变量中去,完了记得重启idea。

接着:

1、生成gpg的key和密码

打开终端,输入:gpg --gen-key

 输入后会弹窗让你设置这个key的密码

2、查询已经生成的gpg的key

gpg --list-keys

你的key为:0x加上红框中的8位字符

3、上传key

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys gpg的key

4、执行maven clean deploy开始上传

四、正式发布

等待上传成功后,来到Nexus Repository Manager,登录后点击Staging Repositories:

refresh下,应该会出现你刚上传的项目,点击close,点击confirm,这时系统会开始验证这个jar包是否正确,等待几分钟,如果正确,则release按钮可以被点击了。此时点击release按钮,输入一些你的jar包介绍后点击confirm,就开始正式发布到maven中央仓库了。再过一会,你会收到一条Jira机器人的评论:

告诉你的jar包已经开启了同步,大概会在30分钟后被释放到中央仓库,至此,就完成了。

你可以在以下两个网站中搜索你上传的jar包:

Central Repository:

Maven Central

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

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

相关文章

网络编程 lesson2 TCP基础编程

目录 sockt介绍 socket类型 socket所在位置 端口号&#xff08;重点&#xff09; 端口号作用 端口号范围 字节序&#xff08;面试常见&#xff09; 大端序 小端序 验证当前主机字节序 字节序转换和IP转换函数接口&#xff08;常用&#xff09; TCP编程 函数接口 …

[230517] TPO71 | 2022年托福阅读真题第5/36篇 | Minoan Palaces | 14:51~16:00+22:00~23:20

7102 Minoan Palaces 目录 7102 Minoan Palaces 正文 题目 Paragraph 1 问题 1 Paragraph 2 问题 2 Paragraph 3 问题 3 4 Paragraph 4 问题 5 6 Paragraph 5 问题 7 8 Paragraph 2-问题9 全篇-问题10 正确率&#xff1a;7/10 正文 Paragraph 1 The…

JavaScript实现输入指定行数,输出三角形的代码

以下为实现输入指定行数&#xff0c;输出三角形的程序代码和运行截图 目录 前言 一、实现输入指定行数&#xff0c;输出三角形 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以在目录里进行快速查找&#xff1b;…

HCIP周日ISIS

ISIS&#xff1a;中间系统到中间系统 ES&#xff1a;终端系统 ES-IS&#xff1a;终端系统到中间系统 ISIS是一种链路状态协议&#xff0c;使用SPF算法 早期的ISIS是基于CLNP&#xff08;无连接网络协议&#xff09;而开发的&#xff0c;为了继续追逐TCP/IP的发展&#xff0…

关于getchar的用法及实例解析

一、getchar()函数是什么&#xff1f; getchar()函数是获取一个字符。说到这里就有人问了&#xff0c;为什么他的返回类型是int&#xff1f; 因为实际上EOFend of file&#xff08;-1&#xff09;&#xff0c;EOF实际上就等于-1。当你返回失败的时候返回的是-1&#xff0c;所以…

计算机网络(四上)——网络层!!!重中之重

先来个整章的大框架&#xff0c;看起来也没有多少东西&#xff08;bushi&#xff09;。 这篇文章&#xff0c;就先写 一、网络层的功能 互联网在网络层的设计思路是&#xff0c;向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务 1.1.异构网络互联 1.网络互联是…

Springboot +Flowable,流程表单应用之动态表单

一.简介 整体上来说&#xff0c;我们可以将Flowable 的表单分为三种不同的类型&#xff1a; 动态表单 这种表单定义方式我们可以配置表单中每一个字段的可读性、可写性、是否必填等信息&#xff0c;不过不能定义完整的表单页面。外置表单 外置表单我们只需要定义一下表单的 k…

kafka 从入门到精通

kafka 从入门到精通 安装 zookeeper模式 创建软件目录 mkdir /opt/soft cd /opt/soft下载 wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz解压 tar -zxvf kafka_2.13-3.4.0.tgz 修改目录名称 mv kafka_2.13-3.4.0 kafka配置环境变量 vim /etc/pr…

C51基础之单片机编程中通用指针和定向指针

通用指针和定向指针 参考资料&#xff1a;Keil > Help > uVision Help > Cx51 Compiler User’s Guide > Language Extensions > Pointers 一、Cx51指针的几种用法 int *ptr; /* 指向&#xff1a;任意空间的int变量&#xff0c; 存储在&…

什么是Java中的finalize()方法?它有什么作用

在Java中&#xff0c;finalize()方法是一个由Object类定义的方法&#xff0c;用于在对象被垃圾回收器回收之前执行一些清理工作。finalize()方法是一个被保护的方法&#xff0c;可以被子类重写&#xff0c;但是通常情况下不需要显式地调用该方法。 finalize()方法的作用 在Jav…

MYSQL原理、设计与应用

概述 数据库(Database&#xff0c;DB)是按照数据结构来组织、存储和管理数据的仓库&#xff0c;其本身可被看作电子化的文件柜&#xff0c;用户可以对文件中的数据进行增删改查等操作。 数据库系统是指在计算机系统中引入数据库后的系统&#xff0c;除了数据库&#xff0c;还…

首次开通社交账号亲自招聘人才 周星驰都在关注的Web3 你知道是什么吗?

60岁的“星爷”周星驰要进军元宇宙了&#xff1f; 谁能想到&#xff0c;向来低调的他首次注册社交账号&#xff0c;竟是为了发布一条招人信息&#xff0c;挑选的还不是新片男女主角&#xff0c;而是Web3人才&#xff0c;一脚跨界到了互联网科技领域。 今天一整天&#xff0c;…

2022-2023 年度广东省职业院校学生专业技能大赛中职组“网络安全”赛项竞赛任务书(样题)

2022-2023 年度广东省职业院校学生专业技能大赛中职组“网络安全”赛项竞赛任务书&#xff08;样题&#xff09; 一、竞赛时间 总计&#xff1a;210 分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A 模块 A-1 登录安全加固 90 分钟 200…

node笔记_express结合formidable实现前后端的文件上传

文章目录 ⭐前言⭐安装http请求的文件解析依赖库&#x1f496; 安装 formidable&#x1f496; node formidable接受formData上传参数 ⭐上传的页面搭建&#x1f496; vue2 element upload&#x1f496; node 渲染 上传文件 ⭐后端生成api上传文件到指定目录&#x1f496;完整的…

【Spring篇】Spring入门案例

&#x1f353;系列专栏:Spring系列 &#x1f349;个人主页:个人主页 目录 一、IOC入门案例 1.入门案例思路分析 2.入门案例代码实现 二、DI入门案例 1.入门案例思路分析 2.入门案例代码实现 三、图书推荐 介绍完Spring的核心概念后&#xff0c;接下来我们得思考一个问题…

2023年安徽省中职网络安全跨站脚本攻击

B-4:跨站脚本攻击 任务环境说明: √ 服务器场景:Server2125(关闭链接) √ 服务器场景操作系统:未知 √ 用户名:未知 密码:未知 1.访问服务器网站目录1,根据页面信息完成条件,将获取到弹框信息作为flag提交; 通过尝试知道这里存在xss漏洞

【CVE-2022-26134】Confluence OGNL RCE 漏洞

漏洞描述 远程攻击者在未经身份验证的情况下&#xff0c;可构造OGNL表达式进行注入&#xff0c;实现在Confluence Server或Data Center上执行任意代码。 影响版本 Confluence Server and Data Center > 1.3.0 Confluence Server and Data Center < 7.4.17 Confluenc…

九头蛇3389远程爆破

1.初学KALI hydra&#xff08;海德拉&#xff09;。 实验环境&#xff1a;VM16,虚拟机两台&#xff0c;Windows10系统&#xff0c;KALI系统&#xff0c;用nmap查看目标端口是否开放。 2.在KALI虚拟机上面使用命令nmap查看WIN10的3389端口是否打开。 3.在KALI虚拟机上面建立用…

Java sdk使用加载账户私钥调用合约

Java sdk使用加载账户私钥调用合约 1.智能合约案例 1.2 智能合约的流程 1.2 智能合约详细代码 实现了一个简单的商店功能。它定义了三个结构体&#xff1a;用户、商家和商品&#xff0c;以及对应的映射关系。它提供了一些方法用于注册用户和商家&#xff0c;创建商品&#x…

MVC模式和三层架构

MVC模式和三层架构 MVC模式三层架构MVC与三层架构的联系MVC与三层架构的异同 MVC模式 MVC&#xff08;Model View Controller&#xff09;是软件工程中的一种软件设计模式&#xff0c;它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方…