【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了
文章目录
- 为什么看这篇
- 整体流程
- 1. 注册账号【首次需要】
- 2. 工单申请【新项目必须】
- 3. 项目配置【新项目必须】
- 4. 授权认证【新项目必须】
- 5. 一键发布
- 最后也很重要
为什么看这篇
一是当前网络上一些博客有遗漏部分,这里做补充,二是网上思路没错,但是有些关键配置maven官方做了变更,其三:更详细,更面向初次使用的developer
整体流程

上图所示的步骤基本就是本文的框架,其实打包逻辑比较清晰,仅仅是过程复杂,但有过公司开发经历的同学应该能get到这其实和配置公司的私服步骤基本差不多,
需要注意一点是Apache Maven并没有直接为我们提供打包发布的服务,而是委托给Sonatype公司这个第三方来承接开发者的打包需求。如下便是怎么去使用Sonatype来构建我们的jar包, 更多细节文末有提及
1. 注册账号【首次需要】
- 注册地址
- 这里需要记住用户名和密码,下面配置server的时候需要用到
- 第一次使用的同学需要这个步骤,后续的直接走第二步
2. 工单申请【新项目必须】
- 工单地址
- 创建一个发布工单,声明要进行打包流程
- 按顺序做如下配置【只考虑必填项】
- 项目选择:Community Support - Open Source Project Repository Hosting【直接复制到选择框】
- 问题类型:New Project
- 概要: 简单描述
- 核心配置:
-
group id: 初学者先拿github的域名即可【注意最新格式必须是这样】:io.github.xxx前缀是固定,xxx可以自定义,但推荐使用github的用户名;当然实际项目中的goupId和这里也没啥关系,也可以自定义,但是最好统一,因为对外给使用看到的就是io.github.xxx
-
Project URL: github 的项目地址 -
SCM URL: 带.git后缀的 github 的项目地址
-
3. 项目配置【新项目必须】
具体配置内容是:
- mave打包插件
- javadoc、源代码打包插件
- GPG打包插件
基本按如下复制到你要打包的模块的pom中即可【这个配置可以避免你后期打包遇到一系列问题】
<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><build><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><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.9.1</version><configuration><javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable><!--禁用注释检查--><additionalJOptions><additionalJOption>-Xdoclint:none</additionalJOption></additionalJOptions></configuration><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.5</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin></plugins></build>
4. 授权认证【新项目必须】
这里要用到一个技术:GPG认证,是一种RSA算法实现,目的就是为了校验你是owner,这个项目只有你才能有资格进行代码的打包发布
下载地址
下载完成并且安装成功后,做如下配置
- 本地生成RSA秘钥对,基本安装提示一路提示走下去即可
gpg --gen-key

- 将公钥发布给GPG认证机构,这里罗列三个,任意一个发送成功就行
gpg --keyserver hkp://keyserver.ubuntu.com --send-keys 【如图pub中的公钥串:58F51E8349B06CFF6373189B816EDACFF7BF5299】
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys [同上]
gpg --keyserver hkp://keys.openpgp.org --send-keys 【同上】
- 去本地maven的安装目录,找到settings配置文件,配置用户名和密码【第一步创建】
<!--jira for maven sonatype--><server><id>ossrh</id><username>your username</username><password>your password</password></server>
只配置这个足够,有的人推荐配置profile搞成默认使用Sonatype发布,其实看个人,因为我也使用公司的私服,所以并没有配置,如果纯个人项目可以参考如下非必须配置
<profiles><profile><id>ossrh</id><activation><activeByDefault>true</activeByDefault></activation><properties><gpg.executable>gpg2</gpg.executable><gpg.passphrase>yzdbwj1993</gpg.passphrase></properties></profile></profiles>
5. 一键发布
注意这里有个前提:就是的带打包模块一定是测试验证,编译没问题的
看你习惯用那种方式,命令行 mvn clean install deploy 还是 通过maven工具直接deploy,即可看到效果:
发布成功后可以 访问:https://s01.oss.sonatype.org/#nexus-search;quick~kg-ctl 查看你的jar
最后也很重要
其实写了这么多打包流程,其实想向大家推荐一款基于完全自创的工具jar:分布式任务故障重试脚手架
这里面包含了我工作两年从事数据同步开发,技术组件研发的思想结晶而成,更重要的是能够去解决一些我们频繁的服务发布或者服务故障导致定时任务不得已重试的场景,具体功能可以前往查看,当前已经构建1.0版本,还在持续迭代
第一次使用也有不少踩坑,欢迎各位童鞋使用,哦对了,最后建议及时关闭你的Sonatype issue形成闭环
相关文章:
【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了
文章目录 为什么看这篇整体流程1. 注册账号【首次需要】2. 工单申请【新项目必须】3. 项目配置【新项目必须】4. 授权认证【新项目必须】5. 一键发布 最后也很重要 为什么看这篇 一是当前网络上一些博客有遗漏部分,这里做补充,二是网上思路没错ÿ…...
如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!
如何理解IaaS、PaaS、SaaS?他们各自的优势在哪里?我们又应该如何选择?本篇将带大家深入浅出的了解IaaS、PaaS、SaaS,并为大家盘点2023最受欢迎的SaaS平台。 通过本文你将了解: IaaS、PaaS、SaaS分别是什么我们该如何理…...
立创EDA专业版的原理图上器件有一个虚线框
立创EDA专业版的原理图上器件有一个虚线框解决方法 问题分析: 在使用立创EDA专业版 设计电路原理图时,中途莫名其妙就给我的元件添加了下面图片所示的虚线外框。看着就很别扭的样子,而且工程大了和器件稍微布局比较密的时候就导致整体很难看…...
JUC并发编程--------基础篇
一、多线程的相关知识 栈与栈帧 我们都知道 JVM 中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟 机就会为其分配一块栈内存。 每个栈由多个栈帧(Frame)组成…...
秒懂算法2
视频链接 : 希望下次秒懂的是算法题_哔哩哔哩_bilibili P1094 [NOIP2007 普及组] 纪念品分组 原题链接 : [NOIP2007 普及组] 纪念品分组 - 洛谷 思路 : 排序 贪心 双指针首先先对输入进来的数组进行排序(由小到大)运用贪心的思想 : 前后结合,令l1,rn,若a[l]a[r]<w…...
隐秘的角落:Java连接Oracle提示Connection timed out
前言 这个报错相信各位后端开发都不陌生,大体的原因就那么几种: 检查网络连接:确保您的计算机与数据库服务器之间的网络连接正常。尝试通过其他方式验证您的网络连接是否正常。 检查数据库服务器状态:确保数据库服务器正在运行&…...
基于微信小程序的餐厅预订系统的设计与实现(论文+源码)_kaic
摘 要 随着消费升级,越来越多的年轻人已经开始不再看重餐饮等行业的服务,而是追求一种轻松自在的用餐、购物环境。因此,无人餐厅、无人便利店、无人超市等一些科技消费场所应势而生。餐饮企业用工荒已成为不争的事实。服务员行业的低保障、低…...
科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知
原创 | 文 BFT机器人 近日,四川省科学技术厅发布了2024年第一批省级科技计划项目申报指南;其中包括自然科学基金项目、重点研发计划、科技成果转移转化引导计划、科技创新基地(平台)和人才计划。 01 自然科学基金项目 实施周期 …...
深入了解Webpack:特性、特点和结合JS混淆加密的实例
Webpack是现代前端开发中最受欢迎的构建工具之一,其强大的特性和灵活性使得开发者能够更有效地管理和优化项目资源。在本文中,我们将深入探讨Webpack的特性和特点,并结合实例演示如何使用Webpack与JS混淆加密相结合。Webpack的特性和特点 1.…...
2023-08-23力扣每日一题
链接: 1782. 统计点对的数目 题意: 给n个点和m条无向边(可重复),q个查询 定义edge[a]为一个点是a的边数量,定义ret[a,b]是edge[a]edge[b]-(a与b的边) q个查询q个答案࿰…...
分发饼干【贪心算法】
分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个…...
为什么网络互联地址设置为30位地址
对于点对点链路,为了节约IPv4地址,一般为其分配/30地址块,这样包含4个地址:最小地址作为网络地址,最大地址作为广播地址,剩余两个可分配地址,分配给链路两端的接口,这是最普遍的方法…...
青少年棒球锦标赛发展·棒球1号位
青少年棒球锦标赛发展 1. 青少年棒球锦标赛简介 青少年棒球锦标赛是一个令人兴奋的国际性比赛,每年都有来自世界各地的优秀青少年棒球选手参加。这个锦标赛旨在提供一个展示青少年棒球选手的技能和才华的平台,同时也是为了推动棒球在全球范围内的普及和…...
Unity实现UI图片面板滚动播放效果第二弹
效果: 场景结构: 特殊物体:panel下面用排列组件horizent layout group放置多个需要显示的面板,用mask遮罩好。 主要思路: 这次是要在最后一个toggle的地方,依然向左滚动回1,这是难点。因此实际…...
Redis的基本操作
文章目录 1.Redis简介2.Redis的常用数据类型3.Redis的常用命令1.字符串操作命令2.哈希操作命令3.列表操作命令4.集合操作命令5.有序集合操作命令6.通用操作命令 4.Springboot配置Redis1.导入SpringDataRedis的Maven坐标2.配置Redis的数据源3.编写配置类,创还能Redis…...
省级智慧农业大数据平台项目规划建设方案[195页Word]
导读:原文《省级智慧农业大数据平台项目规划建设方案[195页Word]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 1 农业大数据平台项目概述 1.1 建设…...
php图片批量压缩并同时保持清晰度
php图片压缩可以通过GD库来实现。以下是一个使用GD库进行图片压缩的示例代码: // 原始图片路径 $sourceImage path/to/source/image.jpg; // 压缩后保存的路径及文件名 $compressedImage path/to/compressed/image.jpg; // 压缩后的图片质量(1-100&…...
243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点
第243个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayers项目中设置鼠标滚轮缩放地图大小,每次滑动一格滚轮,设定的值非默认值1。具体的设置方法,参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源…...
NOI2015D. 荷马史诗
荷马史诗 题目描述 追逐影子的人,自己就是影子。 ——荷马 Allison 最近迷上了文学。她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的《荷马史诗》。但是由《奥德赛》和《伊利亚特》组成的鸿篇巨制《荷马史诗》实在是…...
并法编程(集合类不安全)03详细讲解未补充
还未补充...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
