当前位置: 首页 > news >正文

发布依赖到maven仓库

maven中央仓库是一个开放的仓库,所以我们也可以把自己开发的jar推送到远程仓库,这样可以直接引入pom依赖使用我们的库。

准备工作

● 需要一个github账号(程序员必备)
● 网络代理(涉及到的网站通常没版本在国内直接访问,所以最好使用代理)

其他不需要准备什么了,按照以下的步骤依次执行就行。
主要流程:在github上创建项目 - 注册sonatype账号 - 项目申请 - 安装PGP - 修改仓库信息 - 推送到maven仓库。

在github上创建自己的项目

创建一个项目,设置成public即可。

注册sonatype账号

https://issues.sonatype.org/secure/Signup!default.jspa
在这里插入图片描述

注册的信息没有特殊要求,一般和github账号保持一致,也容易记。
这个网站和我们平常用的jira一样,方便协同合作。

项目申请

新建一个【Community Support - Open Source Project Repository Hosting (OSSRH)】类型的问题,主要用于验证github项目是否有效。
在这里插入图片描述

这个页面中需要填group.id等信息,如下:
在这里插入图片描述

Group Id是自己域名的反写,如果没有域名可以使用github地址,例如:io.github.casuallc。
提示:https://casuallc.github.io/ 这个地址是基于github创建的自己博客的地址,如果没有可以创建下。

Project URL 是github上的项目地址:https://github.com/casuallc/admq-spring-boot-starter
SCM url是git地址:https://github.com/casuallc/admq-spring-boot-starter.git

填写完成后,会有人在这个问题的评论里联系你。

验证Github项目有效性

进入创建的问题,大概等几分钟后就有机器人联系你的,会留下以下的评论。
在这里插入图片描述

这个是让你在github上创建一个空的项目,创建完评论下就行(不评论估计也行,,)。

之后在创建的问题下会有如下评论,表示你已经可以准备发布项目到maven仓库了。
在这里插入图片描述

安装GPG

这个工具是用来加密构建的jar、pom、source和doc的,理论上是必须的,但是我没验证。可以先跳过,如果后边有报错再安装也行。
https://gpg4win.org/ 在这里可以下载对应操作系统安装包,我是在window下安装的,直接点点点就好了。。。
这里有一点需要注意的是,这个网站会让你选择是不是捐赠,有钱的话就捐点,没钱的话不捐也行。
在这里插入图片描述

安装完成后打开,在【文件】中选择【New OpenPGP Key Pair…】
在这里插入图片描述

名字、邮件地址和github上的保持一致吧。
创建完成后:
在这里插入图片描述

然后右键创建好的证书,选择【在服务器上发布】。

修改项目License信息

这个不是必须的,但通常会在pom中添加Apache License信息和一些用户信息。

<licenses><license><name>Apache License, Version 2.0</name><url>http://www.apache.org/licenses/LICENSE-2.0.txt</url><distribution>repo</distribution></license></licenses><scm><connection>https://github.com/casuallc/admq-spring-boot-starter.git</connection><url>https://github.com/casuallc/admq-spring-boot-starter</url></scm><developers><developer><name>clooker</name><email>clooker@163.com</email><roles><role>Developer</role></roles><timezone>+8</timezone></developer></developers>

添加仓库和认证信息信息
在项目的pom.xml中添加以下内容

<profiles><profile><id>release</id><build><plugins><plugin><artifactId>maven-source-plugin</artifactId><executions><execution><id>attach-sources</id><goals><goal>jar</goal></goals></execution></executions></plugin><plugin><artifactId>maven-javadoc-plugin</artifactId><version>${maven-javadoc-plugin.version}</version><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions><configuration><source>8</source><doclint>none</doclint></configuration></plugin><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>${nexus-staging-maven-plugin.version}</version><extensions>true</extensions><configuration><serverId>ossrh</serverId><nexusUrl>https://s01.oss.sonatype.org/</nexusUrl><autoReleaseAfterClose>true</autoReleaseAfterClose></configuration></plugin></plugins></build></profile>
</profiles>

在maven的settings.xml中添加sonatype上注册的账户信息。

<server><id>ossrh</id><username>clooker</username><password>xxxx</password>
</server>

注意:项目pom文件中org.sonatype.plugins插件下的serverId要和maven settings.xml中的id保持一致。

推送项目到maven仓库

执行 maven clean deploy -Prelease
在这里插入图片描述

org.sonatype.plugins 这个插件会自动推送到maven仓库,然后执行close、release操作,不需要手动在https://s01.oss.sonatype.org/上执行了。
之前的流程:
登录https://s01.oss.sonatype.org/,用户名密码和sonatype一样
选择:Staging Repositories
刷新后,选择刚才自己提交的项目,依次点击:Close和Release。
在这里插入图片描述

查看自己的项目

等待一段时间后就能在maven仓库看到自己的项目了,我这里是推送成功就能看到了。
https://s01.oss.sonatype.org/content/repositories/releases/io/github/casuallc/admq-spring-boot-starter/
在这里插入图片描述

其他

需要注意的是release的版本不能相同,也就是已经release的jar就不能修改了,所以每次release需要修改版本号。
如果出现401、403等问题,通常是GPG没有安装好,或者maven-gpg-plugin插件的版本不对,或者是在sonartype上注册账号需要等一段时间才会生效。

相关文章:

发布依赖到maven仓库

maven中央仓库是一个开放的仓库&#xff0c;所以我们也可以把自己开发的jar推送到远程仓库&#xff0c;这样可以直接引入pom依赖使用我们的库。 准备工作 ● 需要一个github账号&#xff08;程序员必备&#xff09; ● 网络代理&#xff08;涉及到的网站通常没版本在国内直接访…...

Laravel-admin之自定义操作日志

laravel-admin是封装性极好的框架&#xff0c;自带的就有操作日志的记录&#xff0c;但是对于非开发人员可能看不懂这个日志&#xff0c;所以就想着给修改一下&#xff0c;以谁修改了什么&#xff0c;谁删除了什么&#xff0c;谁审核了什么&#xff0c;谁添加了什么类似&#x…...

用Python做了一个法律查询小工具,非常好用

用Python做了一个法律查询小工具&#xff0c;非常好用效果展示准备工作不会的话可以点我直达代码和视频讲解&#xff0c;我都准备好了主要代码哈喽兄弟&#xff0c;今天给大家分享一个Python tkinter制作法律查询小工具。 光爬虫大家也只能自己用用&#xff0c;就算打包了exe&…...

工作篇:触摸屏原理介绍

一、触摸屏概述 触摸屏作为一种新的输入设备&#xff0c;它是目前最简单、方便、自然的一种人机交互方式。 当接触了屏幕上的图形按钮时&#xff0c;屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置&#xff0c;可用以取代机械式的按钮面板&#xff0c;并借由液晶…...

Ep_操作系统面试题-操作系统的分类

答案 单体系统 整个操作系统是以程序集合来编写的&#xff0c;链接在一块形成一个二进制可执行程序&#xff0c;这种系统称为单体系统。 分层系统 每一层都使用下面的层来执行其功能。 微内核 微内核架构的内核只保留最基本的能力&#xff0c;把一些应用放到了用户空间 客户-…...

iframe或document监听滚动事件不起作用

有时候我们会遇到监听iframe或document的滚动事件不起作用的情况&#xff0c;在排除代码写错的情况下&#xff0c;我们应该考虑此时的document是否可以滑动。 1、为什么document不能监听滑动? 就很奇怪&#xff0c;明明页面时有滚动条的&#xff0c;为什么说document不可滑动…...

基频估计算法简介

基频估计算法 F0 estimate methods 估计F0的方法可以分为三类:基于时域、基于频域、或混合方法。本文详细介绍了这些方法。 所有的算法都包含如下三个主要步骤&#xff1a; 1.预处理&#xff1a;滤波&#xff0c;加窗分帧等 2.搜寻&#xff1a;可能的基频值F0&#xff08;候选…...

linux修改DNS 系统版本Kylin V10桌面版

配置DNS在银河麒麟桌面操作系统V10 SP1 中修改DNS信息&#xff0c;直接修改/etc/resolv.conf文件中的DNS信息&#xff0c;不能生效。应该参考如下步骤&#xff1a;一、首先修改 /etc/systemd/resolved.conf文件&#xff0c;在其中添加DNS信息在终端中执行以下命令&#xff1a;s…...

如何使用 AWS Lambda 运行 selenium

借助 AWS Lambda 运行 selenium 来爬取网络数据。 简介 与手动从网站收集数据相比&#xff0c;爬虫可以为我们节省很多时间&#xff0c;对于爬虫的每次请求而言&#xff0c;这相当于 AWS Lambda 的每次函数的运行。 AWS Lambda 是一种将脚本部署到云的简单且价格低廉的服务&…...

认识Cesium旋转大小变量

前文代码中有如下&#xff1b;矩阵乘以旋转大小&#xff0c;还放入mat&#xff1b; Cesium.Matrix4.multiply(mat, rotationX, mat); 初看以为rotationX是一个数值&#xff0c;因为矩阵可以和数相乘&#xff1b; 但是看它的代码&#xff0c;rotationX是由一长串代码获得的&a…...

异响加持、吐槽声不断,小鹏G9难解困局

小鹏汽车的烦恼就好比红尘中的三千青丝&#xff0c;小鹏G9“惊魂48小时”的恐慌还未平息&#xff0c;车门异响等问题就已经层出不穷&#xff0c;再次将小鹏汽车推上风口浪尖。 可以毫不客气的说&#xff0c;G9承载着小鹏汽车盈利的希望&#xff0c;但在原本处于上升之势的G9却…...

【react】react18的学习

一、安装 $ create-react-app [Project name]默认支持sass 二、核心依赖 react&#xff1a;react 核心 react-dom&#xff1a;用于开发渲染web 应用&#xff1b; react-scripts&#xff1a;封装webpack服务&#xff1b; "start": "react-scripts start&quo…...

Ep_操作系统面试题-什么是线程,线程和进程的区别

1. 一个进程中可以有多个线程,多个线程共享进程的堆和方法区 (JDK1.8 之后的元空间),但是每个线程有自己的程序计数器、虚拟机栈和 本地方法栈。 2.进程是资源分配的最小单位&#xff0c;线程是CPU调度的最小单位 视频讲解: https://edu.csdn.net/course/detail/38090 点我…...

最流行的自动化测试工具,总有一款适合你(附部分教程)

前言 在自动化测试领域&#xff0c;自动化工具的核心地位毋庸置疑。本文总结了最顶尖的自动化测试工具和框架&#xff0c;这些工具和框架可以帮助组织更好地定位自己&#xff0c;跟上软件测试的趋势。这份清单包含了开源和商业的自动化测试解决方案。 1&#xff09;Selenium …...

Shell高级——进程替换vs管道

以下内容源于C语言中文网的学习与整理&#xff0c;如有侵权请告知删除。 1、问题引入 这里将Shell中的“进程替换”与“管道”放在一起讲&#xff0c;是因为两者的作用几乎类似。 进程替换&#xff1a;将一个命令的输出结果传递给另一个&#xff08;组&#xff09;命令。 管…...

国内有哪些支持定制化的低代码平台?

编者按&#xff1a;贴合企业业务需求的系统才是好系统&#xff0c;高程度的定制能力平台意味着可以提供更高契合度的产品&#xff0c;更好地匹配业务需求。本文介绍了国内支持定制化的老厂商低代码平台&#xff0c;具有源码交付、私有化部署、国产化、数据对接等优势。关键词&a…...

Altair 宣布将于3月举办 Future.Industry 2023 全球虚拟大会

Altair&#xff08;纳斯达克股票代码&#xff1a;ALTR&#xff09;近日宣布将于 2023 年 3 月 8 - 9 日 举办年度全球虚拟大会 Future.Industry 2023。旨在探索影响全球未来的新趋势&#xff0c;并深入探讨仿真、高性能计算 (HPC)、人工智能&#xff08;AI&#xff09;和数据分…...

react lazyLoad学习记录

react lazyLoad学习记录1.lazyLoad用处2.使用2.1 react-router-dom5版本写法2.2 react-router-dom6版本写法1.lazyLoad用处 默认例如首页&#xff0c;如果有好十几个甚至百个路由&#xff0c;react是会默认一下全部把路由组件一下全部加载的&#xff0c;极可能造成页面卡顿。r…...

29 openEuler管理网络-配置网络绑定

文章目录29 openEuler管理网络-配置网络绑定29.1 使用nmcli29.2 使用命令行29.2.1 检查是否已安装Bonding内核模块29.2.2 创建频道绑定接口29.2.3 创建从属接口29.2.4 激活频道绑定29.2.5 创建多个绑定29 openEuler管理网络-配置网络绑定 29.1 使用nmcli 创建名为bond0的绑定&…...

RTT 全志D1s RDC2022纪念版开发板开箱使用分享与折腾记录

原文链接&#xff1a;https://bbs.aw-ol.com/topic/3021/ 作者caoxuetian 1&#xff1a;开发板介绍 RTT D1s RDC2022纪念版开发板是一块基于全志科技RISC-V内核 芯片 D1S的小尺寸开发板&#xff0c;尺寸仅为5.5cm*4cm&#xff0c;能够已非常小的体积带来舒适的开发感受&#…...

24日常实习万得一面面径

文章目录分析与复盘面试题分析与复盘 应该将项目进行复习好的&#xff0c;两个项目都应该对简历写的那些进行复习&#xff0c;以为日常不问项目的一面。哭死… 面试题 1.自我介绍 2.为什么从土木转到开发&#xff0c;学习java有哪些途径 3.介绍下项目中你觉得最有设计的模…...

MySQL的DML和DDL操作(1)

这里介绍几种DML操作INSERT INTO——插入记录插入一条记录插入一条记录 INSERT INTO table [(column [, column . ])] VALUES(value [,value . ]); 例子&#xff1a; insert into student values( 1,"承太郎" )default charset utf8&#xff1b;插入多条记录插入多条…...

Kafka系列之:Kafka生产者和消费者

Kafka系列之:Kafka生产者和消费者 一、Kafka生产者发送流程二、提高生产者吞吐量三、Kafka消费方式四、Kafka消费者总体工作流程五、按照时间消费Kafka Topic一、Kafka生产者发送流程 batch.size:只有数据积累到batch.size之后,sender才会发送数据,默认16K。linger.ms:如果…...

Linux进程间通信:信号量(一)

前提知识 在介绍信号量之前&#xff0c;先来看看一些概念和一些简单的前提知识&#xff1a; 进程间通信的前提是让不同的进程看到同一份资源。于是&#xff0c;就有提出让这种资源成为一种公共资源的方法&#xff0c;方法的提出&#xff0c;导致了一种新的问题的出现&#xf…...

Python笔记一之excel的读取

这里我常用的 python 对于 excel 的读取库有两个&#xff0c;一个是 xlsxwriter 用于操作 excel 的写入&#xff0c;一个是 xlrd 用于 excel 文件的读取。 使用的库的版本如下&#xff1a; xlsx1.2.6xlrd1.1.0 xlsxwriter 写入 excel 新建一个 excel import xlsxwriterpat…...

JavaScript Number 数字对象

文章目录JavaScript Number 数字对象JavaScript 数字所有 JavaScript 数字均为 64 位精度八进制和十六进制无穷大&#xff08;Infinity&#xff09;NaN - 非数字值数字可以是数字或者对象数字属性数字方法JavaScript Number 数字对象 JavaScript 只有一种数字类型。 可以使用也…...

设计模式-服务定位器模式

设计模式-服务定位器模式一、背景1.1 服务定位模式1.2 策略模式二、代码实战2.1 服务定位器2.2 配置ServiceLocatorFactoryBean2.3 定义一个支付的接口2.4 根据不同类型处理Bean2.5 controller层三、项目结构及测试结果3.1 测试结果3.2 项目结构及源码(欢迎star)四、参考资料一…...

Android Dalvik虚拟机 GC流程分析

前言 本篇继续介绍安卓dalvik虚拟机&#xff0c;介绍Dalvik虚拟技的GC流程。 GC结构体 dalvik/vm/alloc/Heap.h static const GcSpec kGcForMallocSpec {true, /* isPartial */false, /* isConcurrent */true, /* doPreserve */"GC_FOR_ALLOC" }; /* Not eno…...

opencv读入图片注意事项

来源&#xff1a;投稿 作者&#xff1a;蓬蓬奇 编辑&#xff1a;学姐 深度学习数据预处理中常用opencv读入图片&#xff0c;一般在__getitem__函数中调用。本文主要介绍opencv读取图片的一些细节以及注意事项。本文中使用的图片见第6节“opencv测试使用的图片”。 1.如何通过o…...

学习渗透测试,考CISP-PTE还是考NISP-PT证书呢?

其实两者都可以&#xff0c;但是要看考生的实际需求&#xff01; 为什么说两者都可以&#xff1f; 两个证书都由中国信息安全测评中心颁发&#xff0c;CISP-PTE&#xff08;注册信息安全渗透测试工程师&#xff09;,NISP-PT&#xff08;国家信息安全水平考试渗透测试工程师),…...

做造价在那个网站比较好/武汉网络推广广告公司

2019独角兽企业重金招聘Python工程师标准>>> http://www.yiibai.com/maven/deploy-maven-based-war-file-to-tomcat.html 在本教程中&#xff0c;我们将学习如何使用Maven的Tomcat插件打包并部署一个WAR文件到Tomcat(Tomcat的6和7。 要用到工具&#xff1a; Maven 3…...

深圳 b2c 网站建设/百度学术官网入口

一、AI可解释性 1.什么是可解释性&#xff1f; 可解释性&#xff0c;就是我们需要完成一件事的时候&#xff0c;我们能获取到的足够多的&#xff0c;能让我们自己理解的信息。当我们不能获得足够多的信息&#xff0c;来理解一件事情的时候&#xff0c;我们可以说这是不可解释…...

网站建设 asp 武汉/天眼查企业查询入口

功能需求&#xff1a; 在监督监理项目的Word报告模块中&#xff0c;要求实现对Word文件内容操作的撤销、重做功能。 实施方案&#xff1a; 采用备忘录模式实现。 要点一&#xff1a;备忘录模式 应用程序在每次操作之后都改变了他的状态。也就是说一个应用程序一旦被操作&#x…...

网站开发流程 图书/网站seo搜索引擎的原理是什么

一个开始  想起来&#xff0c;这个话题&#xff0c;犹如散文一般&#xff1b;以前写过类似的随笔&#xff0c;随着spaces的离开&#xff0c;渐渐忘却那个故事  今天&#xff0c;我想起这个&#xff0c;是因为我想用一个特定的环境来模拟一段痕迹&#xff0c;而不仅仅是一个…...

企业网站开发费是固定资产吗/网站友情链接自动上链

近日&#xff0c;不少《王者荣耀》玩家反映&#xff0c;收到人脸识别验证弹窗提醒。据了解&#xff0c;腾讯已经开始在包括《王者荣耀》《和平精英》在内的100多款手机游戏产品中进行人脸识别验证&#xff0c;旨在解决“孩子冒用家长身份信息绕过监管”的问题。登录过程中拒绝或…...

平湖公司做网站/广州seo站内优化

纯干货 /*---------------------------------------------------------------------------------- 文件名称&#xff1a;控制LED2&#xff0c;LED3闪烁 硬件平台&#xff1a;STM32F103 开发板 作者 &#xff1a;求是 固件库 &#xff1a;V3.5 ------------------------------…...