码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Maven】Jar发布到maven中心仓库的步骤


    文章目录

      • 创建工单
      • GPG环境
      • MAVEN_HOME/conf/setting.xml
      • 源码pom.xml
      • mvn发布
      • 正式发布
      • 去各大仓库查看结果
      • QA
        • 如何删除已经发布到 mavenCentral 中的包?
        • Deploy成功后,各大Maven仓库不能搜索到对应的软件/版本?
      • 参考

    创建工单

    登录网址:https://issues.sonatype.org
    如果还没有账号,需要先注册一个账号。

    ⚠️ 如果你已经拥有该group id,则可跳过该步骤,不需要再去创建工单。
    参考Spring Boot的库,都是发布在同一group id下面的。 org.springframework.boot

    GPG环境

    我们需要一个GPG环境,用来对上传的文件进行加密和签名,保证你的jar包不被篡改,下载地址:
    windows: https://www.gpg4win.org/
    mac os: https://www.gpg4win.org/get-gpg4win.html

    MAVEN_HOME/conf/setting.xml

    <servers>
       <server>
          <id>sonatype-nexus-stagingid>
          <username>JIRA账号username>
          <password>JIRA密码password>
       server>
    servers>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    源码pom.xml

    <licenses>licenses>
    <scm>scm>
    <developers>developers>
    
    <profiles>
      <profile>
        <id>sonatype-oss-releaseid>
    	<build>
    			<plugins>
    			
    			<artifactId>maven-source-pluginartifactId>
    			
    			<artifactId>maven-javadoc-pluginartifactId>
    			
    			<artifactId>maven-gpg-pluginartifactId>
    			
    			<artifactId>nexus-staging-maven-pluginartifactId>
    		plugins>
    	build>
      profile>
    profiles>
    
    <distributionManagement>
      <snapshotRepository>sonatype-nexus-snapshotssnapshotRepository>
      <repository>sonatype-nexus-stagingrepository>
    distributionManagement>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    mvn发布

    # 不执行单元测试,也不编译 ,GPG证书有设置密码
    mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=hello1234." -Dmaven.test.skip=true
    
    # 不执行单元测试,也不编译,GPG证书没有设置密码
    mvn clean deploy -P sonatype-oss-release -Dmaven.test.skip=true
    
    • 1
    • 2
    • 3
    • 4
    • 5

    正式发布

    使用步骤一注册的Jira账号,登录:https://oss.sonatype.org

    去各大仓库查看结果

    https://repo.maven.apache.org/maven2/

    https://mvnrepository.com/

    QA

    如何删除已经发布到 mavenCentral 中的包?

    只能重新发一个新版本,但是对于已经发布的版本,不能修改或删除。
    CSDN - 如何删除已经发布到 mavenCentral 中的包

    Deploy成功后,各大Maven仓库不能搜索到对应的软件/版本?

    Deploy成功,nexus可以搜索到相应版本,其他Maven仓库不能搜索到相应版本。

    • 可能情况一:各大Maven仓库从nexus数据同步存在时间差,需要多等待一段时间。
    • 可能情况二:仅仅只Deploy到,未Deploy到
    • 可能情况三:pom.xml设置的是以SNAPSHOT结尾的,如:1.0-SNAPSHOT。

    参考

    知乎 - 发布Jar包到Maven仓库(为开发开源中间件做准备)

    知乎 - Jar发布到maven中心库 京东数字科技集团 软件研发

  • 相关阅读:
    商业建筑利用物联网设备实现能源效率的3种方式
    Metabase学习教程:系统管理-4
    6-4应用层-电子邮件
    模仿dcloudio/uni-preset-vue 自定义基于uni-app的小程序框架
    Java事务使用@Transactional注解时的几种常见错误
    “行泊一体”的火爆与现实困境
    大数据安全认证
    RTL8380M/RTL8382M管理型交换机系统软件操作指南二:转发表
    如何彻底搞懂组合(Composite)设计模式?
    ChatGPT热中的冷思考
  • 原文地址:https://blog.csdn.net/AV_woaijava/article/details/127941246
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号