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

【前车之鉴】: 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.lryc.cn/news/145285.html

相关文章:

  • 如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!
  • 立创EDA专业版的原理图上器件有一个虚线框
  • JUC并发编程--------基础篇
  • 秒懂算法2
  • 隐秘的角落:Java连接Oracle提示Connection timed out
  • 基于微信小程序的餐厅预订系统的设计与实现(论文+源码)_kaic
  • 科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知
  • 深入了解Webpack:特性、特点和结合JS混淆加密的实例
  • 2023-08-23力扣每日一题
  • 分发饼干【贪心算法】
  • 为什么网络互联地址设置为30位地址
  • 青少年棒球锦标赛发展·棒球1号位
  • Unity实现UI图片面板滚动播放效果第二弹
  • Redis的基本操作
  • 省级智慧农业大数据平台项目规划建设方案[195页Word]
  • php图片批量压缩并同时保持清晰度
  • 243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点
  • NOI2015D. 荷马史诗
  • 并法编程(集合类不安全)03详细讲解未补充
  • 软考:中级软件设计师:大数据
  • 【持续更新中】QAGroup1
  • redis应用 2:延时队列
  • ChatGPT AIGC 实现动态组合图的用法
  • 【网站】解压放松的治愈白噪音ASMR
  • 算法通过村第四关-栈白银笔记|括号问题
  • 基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 6 Data Transfers标签页介绍
  • HDLBits-Verilog学习记录 | Verilog Language-Vectors
  • 彻底搞懂 PHP 运算符 ?: 和 ??
  • 贝叶斯人工智能大脑与 ChatGPT
  • 适应高速率网络设备的-2.5G/5G/10G网络变压器/网络滤波器介绍