mac如何将jar包上传到maven中央仓库中

mac如何将jar包上传到maven中央仓库中

  1. 准备sonatype账号

    sonatype官网:https://central.sonatype.com/

    建议使用GitHub账号注册,方便在这里插入图片描述

  2. 之后选择查看用户信息
    在这里插入图片描述

  3. 选择此选项获取用户token的username与password,建议提前复制一下谨防丢失
    在这里插入图片描述

之后在右上角点击Publish按钮,进入发布页面,创建一个namespace命名空间,自己的项目maven坐标的groupId就是命名空间,每次在本地deploy的jar包都需要在deployments页面内手动提交到maven中央仓库中;

<groupId>cn.muzisheng.pear</groupId>
<artifactId>pear-spring-boot-starter</artifactId>
<version>1.1.14</version>

在这里插入图片描述

  1. 配置本地maven的settings.xml文件

    修改server为刚才的信息

    记住自己设置的id,这个是自定义的

    在这里插入图片描述

  2. 配置项目的pom文件

    在sonatype发布插件publishingServerId部分是我们需要替换的内容,其他的按照我的大概率也能运行哈

    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.0.0-M5</version><configuration><skipTests>true</skipTests></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><target>17</target><compilerArgs><arg>-parameters</arg></compilerArgs></configuration></plugin><!--sonatype发布插件--><plugin><groupId>org.sonatype.central</groupId><artifactId>central-publishing-maven-plugin</artifactId><version>0.4.0</version><extensions>true</extensions><configuration><publishingServerId>cn.muzisheng</publishingServerId><tokenAuth>true</tokenAuth><autoPublish>false</autoPublish></configuration></plugin><!-- 生成source --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>3.0.1</version><executions><execution><id>attach-sources</id><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></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></plugins>
    </build>
    
  3. 之后到本地签名部分,我们需要安装gpg,gpg 是一个强大的工具,涵盖了 加密、解密、签名、验证、密钥管理

    在终端中使用命令

    brew install gpg

    如果没有安装brew工具的话可以在其他博客先安装brew

  4. 使用gpg工具配置

    首先使用gpg --gen-key命令创建gpg密钥,将密钥记住后会让我们输入用户姓名跟电子邮箱,之后是注释,大致如下

    Real name: ****.***.**
    Email address: ********@******
    Comment: (可以留空,直接回车)
    You selected this USER-ID:"****.***.** <*********@*****>"Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
    

    输入O确认信息;

    之后gpg会要求输入密码,这个很重要,请一定记住,之后每次将项目deploy可能需要输入密码;

    使用gpg --list-keys查看我们创建的密钥列表,有没有之前我们创建的数据,类似如下:

    pub   rsa4096 2025-04-01 [SC] [expires: 2028-03-31]58334ECBA42693D**0893D0B3E4CCFB***9646
    uid                      ****.***.** <******@****>
    sub   rsa4096 2025-04-01 [E] [expires: 2028-03-31]
    

    最后,将你的密钥上传到密钥服务器中

    gpg --keyserver keyserver.ubuntu.com --send-keys 58334ECBA42693D**0893D0B3E4CCFB***9646
    

    以上的密钥包括id等信息都要替换成你自己的哦!

    做完后尝试deploy吧!

  5. 总结(大致步骤这样,具体操作可以搜索其他博客与ai哦)

    • 登陆sonatype注册用户,获取用户token,创建命名空间;
    • token写到本地maven中央仓库的配置文件settings里,自定义一个id;
    • 在项目的pom文件中添加插件,绑定上id;
    • 最后使用gpg工具,在本地创建一个密钥,并发布到密钥服务器中,用于对上传的信息进行加密;

    下课

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

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

相关文章

【通知】STM32MP157驱动开发课程全新升级!零基础入门嵌入式Linux驱动,掌握底层开发核心技能!

在嵌入式Linux系统开发中&#xff0c;驱动程序开发是一项关键技术&#xff0c;它作为硬件与软件之间的桥梁&#xff0c;实现了操作系统对硬件设备的控制。相较于嵌入式Linux应用开发&#xff0c;驱动开发由于涉及底层硬件且抽象程度较高&#xff0c;往往让初学者感到难度较大。…

高通将进军英国芯片 IP 业务 Alphawave

高通已确认有意收购高速连接模块设计公司 Alphawave Semi&#xff0c;此举可能会导致又一家英国大型科技公司被外国企业收购。 这家总部位于圣地亚哥的巨头已向伦敦证券交易所提交了一份声明&#xff0c;表示正在与 Alphawave 进行谈判&#xff0c;后者生产用于连接数据中心和…

多模态模型:专栏概要与内容目录

文章目录 多模态模型&#x1f4da; 核心内容模块Stable Diffusion基础教程Stable Diffusion原理深度解析部署与环境配置其他多模态模型实践 多模态模型 &#x1f525; 专栏简介 | 解锁AI绘画与多模态模型的技术奥秘 探索多模态AI技术&#xff0c;掌握Stable Diffusion等流行框…

Vue3 + Element Plus + AntV X6 实现拖拽树组件

Vue3 Element Plus AntV X6 实现拖拽树组件 介绍 在本篇文章中&#xff0c;我们将介绍如何使用 Vue 3 和 Element Plus 结合 antv/x6 实现树形结构的拖拽功能。用户可以将树节点拖拽到图形区域&#xff0c;自动创建相应的节点。我们将会通过简单的示例来一步步讲解实现过程…

cursor的.cursorrules详解

文章目录 1. 文件位置与作用2. 基本语法规则3. 常用规则类型与示例3.1 忽略文件/目录3.2 限制代码生成范围3.3 自定义补全建议3.4 安全规则 4. 高级用法4.1 条件规则4.2 正则表达式匹配4.3 继承规则 5. 示例文件6. 注意事项 Cursor 是一款基于 AI 的智能代码编辑器&#xff0c;…

黑马点评项目总结

redis的key设计规范 推荐规范: 业务前缀数据名称唯一id 比如表示文章点赞的用户集合: blog:like:${blogId} 刷新token有效期(拦截器实现) 使用双重拦截器解耦登录鉴权拦截和刷新有效期 RefreshTokenInterceptor: 拦截所有请求 只负责token续期 没有token则放行 Component p…

Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

ARM架构+CODESYS:解锁嵌入式边缘计算的实时控制新范式

工业自动化、物联网和边缘计算的快速发展&#xff0c;ARM架构的边缘计算机凭借其低功耗、高性能和灵活扩展性&#xff0c;成为智能制造与物联网应用的核心载体。这类设备不仅支持Node-RED等可视化数据流工具&#xff0c;还能运行CODESYS工业控制平台&#xff0c;满足复杂场景下…

配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公

由于开发工作的需要&#xff0c;我的办公桌上目前有多台电脑。一台是 i7 配置的电脑&#xff0c;运行 UOS V20 系统&#xff0c;作为主力办公电脑&#xff0c;负责处理企业微信、OA 等任务&#xff0c;并偶尔进行代码编译和验证软件在 UOS V20 系统下的兼容性&#xff1b;另一台…

1g内存电脑sqlite能支持多少并发

1. SQLite的并发机制 写操作&#xff1a;默认使用串行锁&#xff0c;同一时间仅允许一个写操作&#xff08;其他写/读需等待&#xff09;。读操作&#xff1a;支持多并发读取&#xff0c;但受内存、磁盘I/O和配置限制。 2. 关键限制因素 &#xff08;1&#xff09;内存资源 …

时间数据的可视化

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 【实验总结】 【实验目的】 掌握时间数据在大数据中的应用 掌握时间数据可视化图表表示 利用Python程序实现堆叠柱形图可视化 【实验原理】 时间是一个非常重要的维度与属性。时间序列数据存在于社会的各个…

Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;十&#xff09;使用 tar创建归档和压缩文件 前言一、归档与压缩的基本概念1.1 归档与压缩的区别 二、使用tar创建归档文件2.1 tar命令格式2.2 示例操作 三、使用tar进行压缩3.2 命令格式3.3 示例操作 前言 在红帽 Linux 系…

制造业数字化转型:智能招聘系统破解蓝领用工匹配难题?

近年来&#xff0c;中国制造业面临一个看似矛盾的现象&#xff1a;一边是“用工荒”频发&#xff0c;工厂招不到足够的技术工人&#xff1b;另一边是蓝领求职者抱怨“找工作难”&#xff0c;岗位信息不对称、匹配效率低下。据《数智化平台推动高质量充分就业报告2024》统计&…

解决网络异常 repo sync 中断下载的问题

在使用repo sync下载代码的时候&#xff0c;经常由于网络不稳定等因素导致下载失败&#xff0c;采用循环不断下载的方法&#xff0c;脚步如下&#xff1a; vim ~/bin/repo_sync #!/bin/bash trap echo "ctrlc force exit"; exit SIGINT ALL_PKGgrep project .repo/m…

《MyBatis CRUD实战与核心配置详解:从基础操作到高级应用》

一、使用MyBatis完成CRUD 准备工作 创建module&#xff08;Maven的普通Java模块&#xff09;&#xff1a;mybatis-002-crud pom.xml 打包方式jar 依赖&#xff1a; mybatis依赖 mysql驱动依赖 junit依赖 logback依赖 mybatis-config.xml放在类的根路径下 CarMapper.xm…

Java语言如何用AI实现文件报告的自动质检?

文件报告的质量直接影响工作效率和决策的准确性&#xff0c;然而&#xff0c;传统的文件质检方式往往依赖人工审核&#xff0c;效率低下且容易出错。那么&#xff0c;如何利用AI技术实现文件报告的自动化质检呢&#xff1f; 问题1&#xff1a;质检的目标是什么&#xff1f; 文…

es自定义ik分词器中文词库实现热更新

基于web地址的方式实现ik分词热更新。 操作系统&#xff1a;win 11 es version&#xff1a;8.6.2 ik version&#xff1a;8.6.2 1、创建web服务&#xff0c;并提供ik查询词库接口 编写分词http url代码&#xff0c;返回自定义分词内容分词词库数据来自业务需求&#xff0c;存…

铂卡梭 智能羽翼 AI 系统:交易科技的未来引擎

突破性的 AI 交易系统 铂卡梭(Pegasus)近期推出的 InnoFeather AI System(智能羽翼 AI 系统) 代表了金融科技领域的前沿突破。这一系统集成了先进的 机器学习算法、大数据分析 和 实时市场情绪感知,旨在帮助交易者在复杂多变的市场环境中做出更精准的决策。 智能羽翼 AI 系统的…

js中判断对象是否包含某个属性(元素)

在JavaScript中&#xff0c;判断对象是否包含某个属性&#xff08;元素&#xff09;主要有以下几种方法&#xff0c;根据具体需求选择合适的方式&#xff1a; 1. 使用 in 运算符 作用&#xff1a;检查对象自身及原型链上是否存在指定属性。 示例&#xff1a; javascript cons…

Anaconda和Pycharm的区别,以及如何选择两者

目录 主要区别详细说明如何选择&#xff1f;Anaconda的使用步骤 主要区别 Anaconda 和 PyCharm 是 Python 开发中常用的两个工具&#xff0c;但它们的定位和功能完全不同。以下是它们的主要区别&#xff1a; 对比项AnacondaPyCharm类型Python 发行版 包管理工具Python 集成开…