【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了

文章目录

  • 为什么看这篇
  • 整体流程
      • 1. 注册账号【首次需要】
      • 2. 工单申请【新项目必须】
      • 3. 项目配置【新项目必须】
      • 4. 授权认证【新项目必须】
      • 5. 一键发布
  • 最后也很重要

为什么看这篇

一是当前网络上一些博客有遗漏部分,这里做补充,二是网上思路没错,但是有些关键配置maven官方做了变更,其三:更详细,更面向初次使用的developer


整体流程

在这里插入图片描述

上图所示的步骤基本就是本文的框架,其实打包逻辑比较清晰,仅仅是过程复杂,但有过公司开发经历的同学应该能get到这其实和配置公司的私服步骤基本差不多需要注意一点是Apache Maven并没有直接为我们提供打包发布的服务,而是委托给Sonatype公司这个第三方来承接开发者的打包需求。如下便是怎么去使用Sonatype来构建我们的jar包, 更多细节文末有提及

1. 注册账号【首次需要】

  • 注册地址
    1. 这里需要记住用户名和密码,下面配置server的时候需要用到
    2. 第一次使用的同学需要这个步骤,后续的直接走第二步

2. 工单申请【新项目必须】

  • 工单地址
    1. 创建一个发布工单,声明要进行打包流程
    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. 项目配置【新项目必须】

具体配置内容是:

  1. mave打包插件
  2. javadoc、源代码打包插件
  3. 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形成闭环

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

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

相关文章

Android View动画之LayoutAnimation的使用

接前篇 Android View动画整理 &#xff0c;本篇介绍 LayoutAnimation 的使用。 参考《安卓开发艺术探索》。 View 动画作用于 View 。 LayoutAnimation 则作用于 ViewGroup &#xff0c; 为 ViewGoup 指定一个动画&#xff0c;ViewGoup 的子 View 出场时就具体动画效果。 简言…

13.IIC驱动框架简介

目录 IIC物理总线 linux设备框架图 i2c_adapter结构体 i2c_algorithm结构体 i2c_client结构体 i2c_driver结构体 I2C总线驱动分析 i2c总线注册&#xff1a;i2c_init i2c总线定义&#xff1a;i2c_bus_type i2c设备和i2c驱动匹配规则&#xff1a;i2c_device_match i2…

UDP 多播(组播)

前言&#xff08;了解分类的IP地址&#xff09; 1.组播&#xff08;多播&#xff09; 单播地址标识单个IP接口&#xff0c;广播地址标识某个子网的所有IP接口&#xff0c;多播地址标识一组IP接口。单播和广播是寻址方案的两个极端&#xff08;要么单个要么全部&#xff09;&am…

StringBuilder类分享(1)

一、StringBuilder说明 StringBuilder是一个可变的字符序列。这个类提供了一个与StringBuffer兼容的API&#xff0c;但不保证同步&#xff0c;即StringBuilder不是线程安全的&#xff0c;而StringBuffer是线程安全的。显然&#xff0c;StringBuilder要运行的更快一点。 这个类…

服务器中了mkp勒索病毒该怎么办?勒索病毒解密,数据恢复

mkp勒索病毒算的上是一种比较常见的勒索病毒类型了。它的感染数量上也常年排在前几名的位置。所以接下来就由云天数据恢复中心的技术工程师来对mkp勒索病毒做一个分析&#xff0c;以及中招以后应该怎么办。 一&#xff0c;中了mkp勒索病毒的表现 桌面以及多个文件夹当中都有一封…

LeetCode(力扣)530. 二叉搜索树的最小绝对差Python

LeetCode530. 二叉搜索树的最小绝对差 题目链接代码 题目链接 https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # …

无涯教程-机器学习 - 数据可视化

在上一章中&#xff0c;无涯教程讨论了数据对于机器学习算法的重要性&#xff0c;以了解具有统计信息的数据&#xff0c;还有另一种称为可视化的方式来理解数据。 借助数据可视化&#xff0c;可以看到数据的属性保持什么样的关联&#xff0c;这是查看要素是否与输出相对应的最…

Docker拉取RocketMQ及可视化界面

本文介绍Docker拉取RocketMQ及可视化界面操作步骤 Linux下安装Docker请参考&#xff1a;Linux安装Docker 文章目录 安装namesrv创建挂载目录授权相关权限拉取镜像运行容器查看运行情况 安装Broker创建挂载目录及配置文件目录授权相关权限创建配置文件运行容器查看运行情况 安装…

基于 vue2 发布 npm包

背景&#xff1a;组件化开发需要&#xff0c;走了一遍发布npm包的过程&#xff0c;采用很简单的模式实现包的发布流程&#xff0c;记录如下。 项目参考&#xff1a;基于vue的时间播放器组件&#xff0c;并发布到npm_timeplay.js_xmy_wh的博客-CSDN博客 1、项目初始化 首先&a…

Java中word转Pdf工具类

背景&#xff1a; 最近做的一个项目中&#xff0c;对于word转Pdf用的地方很多&#xff0c;特此记录 搭建总图&#xff1a; 代码部分&#xff1a; 1.需要的jar包&#xff1a; aspose-words-15.8.0-jdk16.jar 注&#xff1a;下载好这个jar包后&#xff0c;在项目的根目录新建一…

Android全面屏下,默认不会全屏显示,屏幕底部会留黑问题

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 公司以前的老项目&#xff0c;便出现了这种情况&#xff0c;网上搜索了各种资料&#xf…

搭建开发环境-Mac

概述 上一篇搭建开发环境-WSLUbuntu 记录了WSL 和Ubuntu 下开发环境的搭建。这一篇就说下Mac开发环境的搭建。 就像很多人误以为Mini 是专为女孩子设计的高颜值车&#xff0c;其实是一辆极其hardcore 的拉力车一样。 很多人都被Mac 那高颜值蒙蔽了&#xff0c;其实这是一台生产…