【拥抱开源】发布自己的项目到maven中央仓库

news2024/9/21 18:42:56

文章目录

    • 🎈第一步,注册账号
    • 💿第二步,登录
    • 📀第三步,设置信息
    • 💾第四步,创建问题
    • 📹第五步,验证信息
    • 🎥第六步,上传jar包到中央仓库
      • 💻我们先上传snapshot版本的
        • 📺第一步,配置密钥
          • 📱第一步,下载密钥生成器
          • ☎️第二步,生成密钥
          • ☎️第三步,查看公钥
          • 📞第四步,发布公钥
        • 📟第二步,配置maven
          • 📠第一步,配置maven的settings.xml文件
          • 💽第二步,idea使用改配置文件
        • 📼第三步,配置项目的pom文件
          • 🔉第一步,修改配置
          • 🔈 第二步,打包上传
        • 🔇第四步,查看是否上传成功
      • 📢再上传release版本
        • 📣第一步,修改settings.xml
        • ⌛️第二步,修改pom文件
        • ⏳第三步,打包上传
        • ⏰第四步,查看是否上传成功
    • ⌚️第七步,后续发布新版本

🎈第一步,注册账号

官网注册账号地址

username不能是中文,不让后面会出问题

在这里插入图片描述
在这里插入图片描述

💿第二步,登录

在这里插入图片描述

📀第三步,设置信息

在这里插入图片描述
在这里插入图片描述

💾第四步,创建问题

在这里插入图片描述
在这里插入图片描述

一定要选如图的选项

在这里插入图片描述

图4.1

图4.1

概要:填你的项目名
groupid:如果gitee上的项目就填io.gitee+下图所示antopen,如果是公司(有域名和公司邮箱),就填com.公司名称

在这里插入图片描述
project url:项目地址

在这里插入图片描述
SCM url:项目克隆地址(后面以.git结尾)

在这里插入图片描述

其他的如图4.1所示

📹第五步,验证信息

在这里插入图片描述

意思是说让你创建一个空仓库来验证是不是你本人在操作

在这里插入图片描述

创建即可,要设置为开源,gitee现在默认是私有的

在这里插入图片描述

创建完成之后点击Respond按钮告诉工作人员已经创建好了

我这里已经成功了,所以没有Respond按钮

在这里插入图片描述

🎥第六步,上传jar包到中央仓库

在这里插入图片描述

💻我们先上传snapshot版本的

📺第一步,配置密钥

📱第一步,下载密钥生成器

下载并安装GPG:
https://www.gnupg.org/download/index.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

☎️第二步,生成密钥

在这里插入图片描述

进入bin目录

在这里插入图片描述

gpg --gen-key

依次输入姓名和地址,填你注册sonatype的信息就行了

在这里插入图片描述

然后让你输入密码(私钥密码passphrase

记住,后面要用

在这里插入图片描述


pub   ed25519 2023-01-09 [SC] [expires: 2025-01-08]
      A4BE13B592B3B38A442170A922D74586719B2B26
uid                      tset <setset@sdf。com>
sub   cv25519 2023-01-09 [E] [expires: 2025-01-08]

A4BE13B592B3B38A442170A922D74586719B2B26 就是你的密钥,记住

☎️第三步,查看公钥
gpg --list-keys

在这里插入图片描述

存储路径,记住

📞第四步,发布公钥
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys A4BE13B592B3B38A442170A922D74586719B2B26

意思就是上传到hkp://keyserver.ubuntu.com:11371中去,然后sonatype也会去这里验证

查询发布公钥是否成功


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

出现这样就成功了

在这里插入图片描述

📟第二步,配置maven

📠第一步,配置maven的settings.xml文件
  <servers>
	  <server>
        <id>ossrh</id>
        <username>(SonaType账号username)</username>
        <password>填你注册SonaType时填写的密码</password>
	  </server>
  </servers>
 
  <profiles>
    <profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <!--这里填你安装的GnuPG位置-->
        <gpg.executable>D:/gpg/GnuPG/bin/gpg.exe</gpg.executable>
        <gpg.passphrase>填写你生成秘钥时输入的密码</gpg.passphrase>
        <!--这里填你秘钥在磁盘上的位置,可通过上面步骤的 gpg --list-keys找到-->
        <gpg.homedir>C:/Users/Administrator/AppData/Roaming/gnupg</gpg.homedir>
      </properties>
    </profile>
  </profiles>
💽第二步,idea使用改配置文件

在这里插入图片描述

📼第三步,配置项目的pom文件

🔉第一步,修改配置
    <!--gav信息-->
    <groupId>io.gitee.antopen</groupId>
    <artifactId>simple-cache</artifactId>
    <!--需要特别注意,你上传的是SNAPSHOT仓库,所以此处版本号后缀必须带SNAPSHOT-->
    <version>1.0.0-SNAPSHOT</version>
 
    <!--项目信息...-->
 <name>simple-cache</name>
    <description>simple cache</description>
    <url>https://gitee.com/antopen/simple-cache</url>
 
    <!--开源协议...-->
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
 
    <!--开发者信息-->
 	<developers>
        <developer>
            <id>masiyi</id>
            <name>masiyi</name>
            <email>masiyi163163@163.com</email>
            <roles>
                <role>Project Manager</role>
                <role>Architect</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
    </developers>
    
    <!--项目在github或其它托管平台的地址-->
    <scm>
        <connection>https://gitee.com/antopen/simple-cache.git</connection>
        <developerConnection>scm:git:ssh://git@gitee.com:antopen/simple-cache.git</developerConnection>
        <url>https://gitee.com/antopen/simple-cache</url>
    </scm>
 
    <profiles>
        <profile>
            <!--注意,此id必须与setting.xml中指定的一致,不要自作聪明改它名字-->
            <id>ossrh</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <!--发布到中央SNAPSHOT仓库插件-->
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </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>
                    
                    <!--生成API文档插件-->
                    <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>
                    </plugin>
 
                    <!--gpg插件-->
                    <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>
            
            <distributionManagement>
                <snapshotRepository>
                   <!--注意,此id必须与setting.xml中指定的一致-->
                   <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>
        </profile>
 
    </profiles>
🔈 第二步,打包上传

先把上面的注释全部删掉,再上传

在这里插入图片描述

然后会弹出对话框让你输入生成gpg时填写的密码

🔇第四步,查看是否上传成功

https://s01.oss.sonatype.org/

在这里插入图片描述

能找到就是成功了

在这里插入图片描述

📢再上传release版本

📣第一步,修改settings.xml

<!--将原来server标签和profile标签中的的ossrh替换为release-->
<id>release</id>

⌛️第二步,修改pom文件

 	<groupId>io.gitee.antopen</groupId>
    <artifactId>simple-cache</artifactId>
    去除-SNAPSHOT后缀
    <version>1.0.1</version>

	<!--将原来profile标签中的的ossrh替换为release-->
	<id>release</id>
	
	 <!--移除此发布到中央SNAPSHOT仓库插件,并替换为分割线下面发布到中央release仓库的插件-->
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
 
                    <!--                    分割线                -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <version>2.5.3</version>
                        <configuration>
                            <autoVersionSubmodules>true</autoVersionSubmodules>
                            <useReleaseProfile>false</useReleaseProfile>
                            <releaseProfiles>release</releaseProfiles>
                            <goals>deploy</goals>
                        </configuration>
                    </plugin>
	
移除
				 <repository>
                    <id>ossrh</id>
              		<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
替换为
				 <repository>
                    <id>release</id>
                    <url>https://s01.oss.sonatype.org/content/repositories/releases/</url>
                </repository>

⏳第三步,打包上传

在这里插入图片描述

⏰第四步,查看是否上传成功

https://s01.oss.sonatype.org/

在这里插入图片描述

都上传成功之后就会收到官方的信息

在这里插入图片描述
意思是

io.gitee.antopen的中央同步已激活。成功发布后,您的组件将在中央对公众开放https://repo1.maven.org/maven2/,通常在30分钟内,但更新到https://search.maven.org可能需要四个小时。

30分钟后就可以下载,4个小时后就可以在mvn搜索网页可以搜索到

在这里插入图片描述

⌚️第七步,后续发布新版本

发布出去就改不了了,如果需要bug修复或者版本更新就只需要上传release版本即可

修改版本号,重复上面操作即可

在这里插入图片描述

鸣谢:https://blog.csdn.net/lovexiaotaozi/article/details/121989407

希望更多的小伙伴能够参与到开源当中去,这样大家才能进步,社会才会发展

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

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

相关文章

网页中字体混淆的处理(简易方法)——爬虫学习笔记

网页中字体混淆的处理——爬虫学习笔记之评论爬取一、网页分析1、打开某点评网址。2、在网页源代码中寻找评论信息&#xff08;1&#xff09;进入这个“火锅店”的详情页&#xff0c;然后右击“检查”&#xff08;2&#xff09;点上面“刷新”详情页&#xff0c;逐步寻找。&…

RK3288 GPIO记录

1、引脚对应的GPIO 编号第一种 使用/sys/kernel/debug/gpio查询所有gpio引脚的基数第二种 cat /sys/class/gpio/gpiochip248/label对应的label就是GPIO引脚&#xff0c;例如下图GPIO8对应的基数就是2482、计算编号编号 基数 PIN脚如GPIO8的基数是248&#xff0c; GPIO8_A6的编…

Java开发 - 数风流人物,还看“微服务”

目录 前言 服务器端的发展历程 早期的服务器 动态的页面 用户内容网站 微服务 企业级应用 互联网应用 微服务介绍 什么是微服务&#xff1f; 为什么使用微服务 怎么使用微服务 Spring Cloud 什么是Spring Cloud Nacos注册中心 什么是Nacos 创建微服务项目 创建…

【Servlet篇】一文带你吃透Request对象

文章目录1. 前言2. Request 对象2.1 Request 继承体系2.2 Request 获取请求参数1. 获取请求行数据2. 获取请求头数据3. 获取请求体数据4. 获取请求参数的通用方式3. IDEA中快速创建 Servlet你问我青春还剩几年&#xff1f;我的回答是&#xff0c;趁现在&#xff0c;正当时。身边…

CS144-Lab2

实验架构 除了写入传入流之外&#xff0c;TCPReceiver 还负责通知 sender 两件事&#xff1a; “First unassembled” 字节的索引&#xff0c;称为“acknowledgment”或 “ackno”。这是接收方需要来自发送方的第一个字节。“first unassembled ” 索引和“first unacceptable…

【项目精选】基于SSH的任务调度系统的设计与实现(视频+源码+论文)

点击下载源码 虽然科技进步在改革开发这几十年来速度飞快&#xff0c;计算机行业也发展迅速&#xff0c;但仍然有大量商家或企业&#xff0c;甚至项目组&#xff0c;采用落后的人工管理方式或者低效的任务调度策略&#xff0c;这无疑是对计算机的一种无视。 计算机处理信息的准…

Python每日一练(20230220)

目录 1. 存在重复元素 II 2. 按要求实现程序功能 3. 分割链表 附录 链表 1. 存在重复元素 II 给定一个整数数组和一个整数 k&#xff0c;判断数组中是否存在两个不同的索引 i 和 j&#xff0c;使得 nums [i] nums [j]&#xff0c;并且 i 和 j 的差的 绝对值 至多为 k。 …

高级数据类型

为了解决单一的业务而存在bitmapsBitmaps类型的基础操作 获取指定key对应偏移量上的bit值getbit key offset 设置指定key对应偏移量上的bit值&#xff0c;value只能是1或0setbit key offset valueBitmaps类型的扩展操作状态位的统计业务需求&#xff1a;1. 统计每天某一部电…

云计算ACP云服务器ECS实例题库(三)

&#x1f618;作者简介&#xff1a;一名99年软件运维应届毕业生&#xff0c;正在自学云计算课程。&#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。&…

关于监控服务器指标、CPU、内存、警报的一些解决方案

文章目录关于监控服务器指标、CPU、内存、警报的一些解决方案Prometheus Grafana 配置 IRIS / Cach 监控服务器Prometheus简介特点架构图Grafana简介特点配置流程自定义Prometheus接口定义配置 Exporter 监控服务器系统资源简介配置流程使用 Alertmanager报警简介配置流程基于…

软考高级-信息系统管理师之知识管理(最新版)

知识管理 知识与知识管理知识管理常用的方法和工具显性知识的管理隐形知识的管理知识管理的工具学习型组织知识产权保护计算机软件保护条例商标法专利法补充建议学的考点:知识与知识管理 1、知识的分类 知识可分为两类,分别是显性知识与隐性知识。 凡是能以文字与数字来表达…

【C++】关联式容器——map和set的使用

文章目录一、关联式容器二、键值对三、树形结构的关联式容器1.set2.multiset3.map4.multimap四、题目练习一、关联式容器 序列式容器&#x1f4d5;:已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、forward_list(C11)等&#xff0c;这些容器统称为…

新能源汽车,有毒

作者| Mr.K 编辑| Emma来源| 技术领导力(ID&#xff1a;jishulingdaoli)新能源汽车到底有多火&#xff0c;生生逼得奥迪某4S店挂出横幅&#xff1a;我们也有纯电新能源&#xff01;老牌名车的辛酸憋屈溢出屏幕。网友神评补刀“这标语给人‘诺基亚也有智能大屏机’的感觉。”一…

【Java基础】变量

Java基础 变量 variable 变量类型 实例变量(非静态字段) Instance Variables (Non-Static Fields) 类的非静态属性 类变量(静态字段) Class Variables (Static Fields) 类的静态属性 局部变量 Local Variables 参数 Parameters 变量命名 大小写敏感 开头&#xff1a;字…

爬虫基本知识的认知(爬虫流程 HTTP构建)| 爬虫理论课,附赠三体案例

爬虫是指通过程序自动化地从互联网上获取数据的过程。 基本的爬虫流程可以概括为以下几个步骤&#xff1a; 发送 HTTP 请求&#xff1a;通过 HTTP 协议向指定的 URL 发送请求&#xff0c;获取对应的 HTML 页面。解析 HTML 页面&#xff1a;使用 HTML 解析器对获取的 HTML 页面…

linux shell 入门学习笔记4 shell运维和编程语言

shell 运维和编程语言 脚本注释 shell脚本中&#xff0c;#后面的内容表示注释内容&#xff0c;一般是给开发者或使用者观看&#xff0c;解释器会忽略此部分内容注释可以单独写一行&#xff0c;也可以跟在文件末尾保持注释的习惯&#xff0c;尽量使用英文 例子&#xff1a; #…

C++类和对象(2)构造、析构函数

类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 class Date{}; 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员 函数。 默认成员函数&#xff1a;用户没有显式实现&…

什么是健康建筑?

WIKIPEDIA健康建筑是指支援建筑和建筑环境中人们&#xff0c;身体、心理和社会健康与福祉的新兴兴趣领域。建筑物可以成为健康和福祉的关键促进者&#xff0c;因为大多数人大部分时间都花在室内。根据全美国人类活动模式调查&#xff0c;美国人「平均 87% 的时间花在封闭的建筑…

redis-如何保证数据库和缓存双写一致性?

前言 数据库和缓存&#xff08;比如&#xff1a;redis&#xff09;双写数据一致性问题&#xff0c;是一个跟开发语言无关的公共问题。尤其在高并发的场景下&#xff0c;这个问题变得更加严重。 我很负责的告诉大家&#xff0c;该问题无论在面试&#xff0c;还是工作中遇到的概率…

windows版Rsync服务端和客户端cwRsync_4.1.0安装测试

下载地址&#xff1a;https://download.csdn.net/download/qq_32421489/87463506 服务端安装&#xff1a; cwRsyncServer&#xff08;服务端&#xff09;配置步骤 1.双击运行wRsyncServer_4.1.0_Installer.exe。 2.这里创建的账户是操作系统的&#xff0c;创建的这个账户是专…