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

2023-05-16

文章目录

    • 🎈第一步,注册账号
    • 💿第二步,登录
    • 📀第三步,设置信息
    • 💾第四步,创建问题
    • 📹第五步,验证信息
    • 🎥第六步,上传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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 林帆:Docker运行GUI软件的方法

    欢迎关注大数据和人工智能技术文章发布的微信公众号 xff1a 清研学堂 xff0c 在这里你可以学到夜白 xff08 作者笔名 xff09 精心整理的笔记 xff0c 让我们每天进步一点点 xff0c 让优秀成为一种习惯 xff01 继上周
  • python内部函数如何修改外部函数变量

    2019独角兽企业重金招聘Python工程师标准 gt gt gt python3 nonlocal关键字 def func result 61 10 def down nonlocal result result 61 result 1
  • 解决bug的能力

    解决问题的高手都会努力保持明白的基础上加上一点不明白的现场模型 xff0c 所以他很喜欢把一些无聊的干扰因素直接删除掉 英语报错信息只能一边看一边读 xff0c 永远告诉自己 xff0c 我还没有读懂 转载于 https blog 51ct
  • Cannot open channel to 3 at election address :3888 java.net.ConnectException: Connection refused (Co...

    关于Linux中搭建分布式时可能遇到的问题 这个问题来自于今天安装zookeeper时踩的一个大坑 xff0c 害的我花了一天时间 在搭建zookeeper的分布式时 xff0c 往往要进行这样的配置 xff1a server 1 61 h
  • Xgboost 模型保存和载入()

    https blog csdn net u012884015 article details 78653178 xgb model get booster save model 39 xgb model 39 tar 61 xgb Boos
  • 新版福昕阅读器(Foxit Reader)启动速度慢解决办法

    新版福昕阅读器 xff08 FoxitReader xff09 启动速度慢解决办法之前喜欢使用福昕阅读器的原因就是看中了其小巧 xff0c 可是最近版本的阅读器打开速度变得慢了很多 xff08 不是电脑配置问题 xff09 xff0c 比A
  • 漫谈 SLAM 技术(上)

    欢迎大家前往腾讯云社区 xff0c 获取更多腾讯海量技术实践干货哦 作者 xff1a 解洪文 导语 随着最近几年机器人 无人机 无人驾驶 VR AR的火爆 xff0c SLAM技术也为大家熟知 xff0c 被认为是这些领域的关键技术之一 本
  • 【设计模式】我终于读懂了命令模式。。。

    文章目录 x1f436 智能生活项目需求 x1f42d 命令模式基本介绍 x1f439 命令模式的原理类图 x1f430 对原理类图的说明 即 命名模式的角色及职责 x1f43a 命令模式解决智能生活项目 x1f438 下面我们跟着代码de
  • css制作从下往上逐渐显示的div

    html代码 span class hljs tag lt span class hljs name div span span class hljs attr class span 61 span class hljs string 34
  • 清除redis缓存的命令,redis常用命令

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 清除redis缓存的命令 xff0c redis常用命令 Redis 命令 xff1a flushall gt 清空整个 Redis 服务器的数据 删除所有数据库的所有 k
  • R语言做正态分布检验

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 首先准备两个样本 code set seed 0 a lt runif 100 min 61 3 max 61 3 b lt rnorm 100 mean 61 0 sd
  • node-gyp安装 报错if not defined npm_config_node_gyp

    解决if not defined npm config node gyp 1 br npm install g node gyp 2 npm config set node gyp 34 node C Users me AppData Ro
  • Oracle在Windows上的运行问题分析和解决

    Oracle大型数据库系统在AIX UNIX上的实战详解 集中讨论的继续 做了一周关于Oracle在32位windows上实施的培训 xff0c 恰好期间有几位Oracle用户邮件询问关于Windows系统调整问题 正好吧 xff0c 把准
  • iOS UIImage 图片局部拉伸的一些学习要点

    之前 做纯色局部拉伸 通过 top bottom left right 相交的阴影拉伸 屡试不爽 实施方法 imageView image 61 UIImage imageNamed 64 34 icon helper palace day
  • Python 查看模块的帮助文档,方法和帮助信息

    参考链接 xff1a https blog csdn net u013810296 article details 55509284 这里介绍下python自带的查看帮助功能 xff0c 可以在编程时不中断地迅速找到所需模块和函数的使用方法
  • 移动电源、3G路由拆机

    这款电源 4400mAh xff0c 淘宝也就八十元左右 xff0c 可以作为无线路由使用 xff0c 可以插 3G 网卡 xff0c 总的来说还算不错 xff0c 关键是外观精美 xff0c 网上一堆和华美 A100 那样的 xff0c
  • FreeRTOS——任务调度—抢占式,时间片和合作式

    以下转载自安富莱电子 xff1a http forum armfly com forum php 本章教程为大家将介绍 FreeRTOS 操作系统支持的任务调度方式 xff1a 抢占式 xff0c 时间片和合作式 xff0c 这部分 算是
  • Linux无网络怎么安装软件,解决无网络环境使用yum本地源安装软件

    搞运维的朋友经常会遇到单位的服务器使用的是内网 xff0c 编译安装时间长 xff0c 麻烦些 xff0c 使用yum安装相对简单 xff0c 由于不能联网所以配置本地yum源是必要的 其实配置本地源是很简单的 xff0c 只需要挂载上系统
  • 到了这个年纪,就应该阅读Spring源码了,源码阅读指南-编译加运行

    文章目录 到了那个年纪 xff0c 就应该阅读Spring源码了 x1f604 第一步 xff0c clone x1f606 第二步 xff0c 使用idea打开项目 x1f60a gradle介绍 xff08 插叙手法 xff09 x1f
  • 页面加载完成

    1 document ready function alert 34 页面加载完成 xff01 34 简写 xff1a function alert 34 页面加载完成 xff01 34 2 原生JS方法 window nl ad 61 f

随机推荐

  • Java写的斗地主游戏源码

    源码下载在最后 我们的前年的课设要求做一个斗地主程序 xff0c 当时正在愁如何做界面 xff0c 当时刚好在学习C xff0c 于是就用C 完成了这个程序 一方面 xff0c 当时我C 功底还很差 xff08 其实现在也不怎么样 xff0
  • 加密的m3u8、ts文件合并

    加密后的ts文件不能直接合并或播放 xff0c 需要使用key对每个ts文件进行解密 分为两种情况 xff1a 1 如果ts文件已经全部下载好 xff0c 则可以直接在本地通过ffmpeg快速解密合并 2 如果ts文件没有下载好 xff0c
  • 微信小程序:截图组件welCropper,实现原理及其使用

    最近做项目的时候 xff0c 需要做一个截图功能 用了一个别人写的截图工具 xff0c 发现截出的图质量下降了 xff0c 但是我们图片要用来做识别 需要保证截出的图质量不下降 而且也不支持通过拖动来调整截图框的大小 所以这个截图工具无法满
  • 时序数据从分表到分库

    这里的时序数据泛指一切随时间推移而不断增长的数据 xff0c 比如通话记录 银行交易记录等 对于数据库来讲 xff0c 时序数据并没有什么特殊性 xff0c 可以和普通数据一样放在数据表中 不过 xff0c 因为不断增长 xff0c 积累时
  • Elasticsearch7.1中文文档-第一章-入门

    入门 引言 Elasticsearch是一个高度可扩展开源的全文搜索引擎 它搜索几乎是实时的 用ES作为搜索引擎 为复杂搜索功能的需求提供解决方案 ES的使用场景 网上商场 搜索商品 ES配合logstash kibana 日志分析 本教程
  • VINS(一)简介与代码结构

    VINS Mono和VINS Mobile是香港科技大学沈劭劼团队开源的单目视觉惯导SLAM方案 是基于优化和滑动窗口的VIO xff0c 使用IMU预积分构建紧耦合框架 并且具备自动初始化 xff0c 在线外参标定 xff0c 重定位 x
  • QTableView中设置单元格居中

    在获取想要设置的单元格对应的QStandardItem item xff0c 然后设置此item文本属性属性 xff0c 伪码如下 xff1a QStandardItem item 61 new QStandarItem 或者 GetQSt
  • MacBook Pro休眠掉电、耗电量大问题解决方案

    1 前言 最近我的2015mbpMacBook Pro Retina 13 inch early 2015 更新完10 14系统后 xff0c 发现休眠待机一晚上后能掉5 电 xff0c 白天待机4 5小时又掉了8 然而在此之前我记得休眠是
  • 推荐一本springBoot学习书籍---深入浅出springBoot2.x

    花了几周时间读完了这本书 确实是一本特别详细全面的书 而且不单单只是springBoot 书中还介绍了许多工作中常用的技术与springBoot的整合使用 当然 也有一些小bug 因为在代码实践过程发现和书中代码还是有区别的 当然我只发现了
  • 【simple-cache】我开发了一款只要一个注解就可以轻松实现缓存的框架

    x1f436 背景 xff1a 我们在写web项目的时候 xff0c 当大量的请求进来会导致我们数据库压力过大 xff0c 所以我们需要加入缓存来减轻数据库的压力 xff0c 但是现在市面上的很多缓存框架配置太复杂 xff0c 所以该框架只
  • 转载——为什么你睡了11个小时仍然觉得疲累?

    教你如何休息 为什么你睡了11个小时仍然觉得疲累 xff1f 为什么你花了好几万去岛国度假并没有增加生活的热情 xff1f 都说要去KTV xff0c 去夜店 xff0c 去游乐园就能忘掉不快 xff0c 更带劲地开始新的一天 xff0c
  • GreenPlum 数据库创建用户、文件空间、表空间、数据库

    前几篇文章介绍了GreenPlum数据库的安装 启动 关闭 状态检查 登录等操作 xff0c 数据库已经创建好了 xff0c 接下来介绍如何使用数据库 按照习惯 xff0c 需要先创建测试用户 表空间 数据库 先创建测试用户dbdream
  • 将Lua嵌入到自己的程序中

    什么是Lua Lua是具有简单数据描述的扩展编程语言 动态解析语言 它提供了非常好的面向对象编程 xff0c 函数式编程 functional programming xff0c 数据驱动式编程 data driven programmin
  • OpenCV——像素数据类型总结<摘>

    1 Unsigned 8bits 一般的图像文件格式使用的大小 IplImage数据结构参数 xff1a IPL DEPTH 8U CvMat数据结构参数 xff1a CV 8UC1 xff0c CV 8UC2 xff0c CV 8UC3
  • 关于warning: Clock skew detected. Your build may be incomplete. 的解决方法

    今天发现电脑的系统时间不对 xff0c 因此将时钟进行了改动 xff0c 回头编译Linux kernel的时候 xff0c 提演示样例如以下的warning xff1a warning Clock skew detected Your b
  • 8-4.桶排序算法详解

    1 桶排序介绍 桶排序 Bucket sort 是一种基于计数的排序算法 xff0c 工作的原理是将数据分到有限数量的桶子里 xff0c 然后每个桶再分别排序 xff08 有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序 xff
  • 我的年终总结,作为研发,在2018年都有哪些进步、收获与成长?

    2018 结束了 部门开会总结了过去的工作与未来的展望 xff0c 也是个不错的机会去回顾 审视 思考自己的 2018 年 玄难说过人与人的差距来自于思考与总结 xff0c 我深深地认同这一点 我也把自己的一部分思考写下来 xff0c 在公
  • cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local ..

    在安装opencv的时候 xff0c 会用 xff1a cmake D CMAKE BUILD TYPE 61 RELEASE D CMAKE INSTALL PREFIX 61 usr local 很久这这句话什么意思 xff01 在bu
  • 谈谈项目售前的经验:(个人观点)

    谈谈自己多年做网络项目售前的经验 个人观点 1 售前要熟悉市场 特别是你从事项目的决策链 项目的商务价格 同类项目竞争对手的价格分析等等 2 售前要熟悉项目的运作方式 实施 管理 客户的需求的深度挖掘 熟悉技术营销和解决方案营销 3 售前要
  • 【拥抱开源】发布自己的项目到maven中央仓库

    文章目录 x1f388 第一步 xff0c 注册账号 x1f4bf 第二步 xff0c 登录 x1f4c0 第三步 xff0c 设置信息 x1f4be 第四步 xff0c 创建问题 x1f4f9 第五步 xff0c 验证信息 x1f3a5