deploy to sonatype

参考文章

https://blog.csdn.net/xuefu_78/article/details/52494698

https://blog.csdn.net/shelldon/article/details/54291474

步驟

申请sonatype账号

申请账号的地址在这里: https://issues.sonatype.org/secure/Signup!default.jspa

申请完成之后,我们需要提供相应的项目信息,地址在这里:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134

填写group Id,需要按要求填写

创建之后,等待审核

审核通过后

在收到邮件告知后,就可以上传包了

  • 修改setting.xml,添加server项,录入账号密码

      <server>
    <id>nexus-releases</id>
    <username>xx</username>
    <password>xxxxx</password>

    nexus-snapshots
    xx
    xxxxx

修改pom.xml

譬如:https://github.com/jianliu/l-poi-excel/blob/master/pom.xml

需要注意的是,parent需要填写

还需要name\url\description\licenses\scm\developers

添加相应的插件 compire\javadoc\releases

添加部署的repository\snapshotRepository

GPG秘钥生成

需要先下载gpg软件windows版本 https://gpg4win.org/download.html

按提示操作过程中,需要自己写一个key,在mvn clean deploy 录入对应的key来验证

gpg的作用是生成公钥,用于加密相关jar包

C:\Users\xx>gpg --gen-key

gpg (GnuPG) 2.2.8; Copyright (C) 2018 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: xxx

Email address: xxx@163.com

You selected this USER-ID:

"xxxxxx@163.com"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O

We need to generate a lot of random bytes. It is a good idea to perform

some other action (type on the keyboard, move the mouse, utilize the

disks) during the prime generation; this gives the random number

generator a better chance to gain enough entropy.

We need to generate a lot of random bytes. It is a good idea to perform

some other action (type on the keyboard, move the mouse, utilize the

disks) during the prime generation; this gives the random number

generator a better chance to gain enough entropy.

gpg: key A4396BB5BC1F15DD marked as ultimately trusted

gpg: directory 'C:/Users/cdliujian1/AppData/Roaming/gnupg/openpgp-revocs.d' created

gpg: revocation certificate stored as 'C:/Users/cdliujian1/AppData/Roaming/gnupg/openpgp-revocs.d\279A2AE668EA9A4E34CBE490A4396BB5BC1F15DD.rev'

public and secret key created and signed.

pub rsa2048 2018-08-21 [SC] [expires: 2020-08-20]

279A2AE668EA9A4E34CBE490A4396BB5BC1F15DD

uid xxxxx@163.com

sub rsa2048 2018-08-21 [E] [expires: 2020-08-20]

C:\Users\xx>gpg --list-keys

C:/Users/xx/AppData/Roaming/gnupg/pubring.kbx

pub rsa2048 2018-08-21 [SC] [expires: 2020-08-20]

279A2AE668EA9A4E34CBE490A4396BB5BC1F15DD

uid [ultimate] xxxxx@163.com

sub rsa2048 2018-08-21 [E] [expires: 2020-08-20]

C:\Users\xx>gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 279A2AE668EA9A4E34CBE490A4396BB5BC1F15DD

gpg: sending key A4396BB5BC1F15DD to hkp://pool.sks-keyservers.net

C:\Users\xx>gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 279A2AE668EA9A4E34CBE490A4396BB5BC1F15DD

gpg: key A4396BB5BC1F15DD: "xxxxx@163.com" not changed

gpg: Total number processed: 1

gpg: unchanged: 1

C:\Users\xx>

打包、上传

首先将version修改为 1.0-SNAPSHOT 带上SNAPSHOT,表明它是快照版本

执行mvn clean deploy,期间会要求录入生成gpg秘钥时输入的密码,校验成功才会上传, 这时包就上传到远程本地仓库了,但其他人还不能下载

mvn release 插件并非必须的,在第一次发布时,只要符合规范,mvn clean deploy 就已经做完了全部事情

mvn release 主要用于将代码提交到远程仓库中去,并非必须品

执行

mvn release:prepare

mvn release:perform

正式发布

到https://oss.sonatype.org/#stagingRepositories登录,

选择自己的仓库,先CLOSE,再Release

如果是第一次发布,在Issue下告知一下工作人员

过一会就可以再maven中心仓库查看到了

如何发布代码到maven中心仓库的更多相关文章

  1. maven中心仓库OSSRH使用简介

    目录 简介 为什么使用中心仓库 发布到中心仓库前的准备工作 使用OSSRH 使用Sonatype创建ticket 中央仓库中的组件要求 提供Javadoc 和源代码 使用GPG/PGP给文件签名 Me ...

  2. Maven学习总结(三):修改从Maven中心仓库下载到本地的jar包的默认存储位置

    一:修改从Maven中心仓库下载到本地的jar包的默认存储位置 从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home ...

  3. 修改从Maven中心仓库下载到本地的jar包的默认存储位置及远程仓库

    从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\g ...

  4. 使用CI/CD工具Github Action发布jar到Maven中央仓库

    之前发布开源项目Payment Spring Boot到Maven中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一直在寻求一 ...

  5. Maven中心仓库

    当你使用Maven构建一个项目,Maven会检查你的pom.xml文件,找出需要下载的依赖包.首先它会到本地仓库查找所需的文件,如果没找到,就到默认的中心仓库(这是新的http://search.ma ...

  6. 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. 发布构件到Maven中央仓库

    一.注册jira账号 访问如下网址: https://issues.sonatype.org/secure/Signup.jspa 记住邮箱,用户名,密码以备以后使用,一定牢记. 二.创建一个issu ...

  8. 发布项目到maven中央仓库

    https://www.xiaominfo.com/2017/04/25/swagger-bootstrap-ui-issue-maven-central/?tdsourcetag=s_pcqq_ai ...

  9. Maven发布Release到中心仓库历程记录(无个人域名)

    Maven发布Release到中心仓库历程记录(无个人域名) 前言 因为前段时间自己做了一个爬虫项目(地址),自己很希望分享到maven中心仓库上,感觉拥有自己的jar包令我兴奋,便开始了maven发 ...

随机推荐

  1. C# 中居然也有切片语法糖,太厉害了

    一:背景 1. 讲故事 昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5 ...

  2. C语言实现顺序表的基本操作(从键盘输入 生成线性表,读txt文件生成线性表和数组生成线性表----三种写法)

    经过三天的时间终于把顺序表的操作实现搞定了.(主要是在测试部分停留了太长时间) 1. 线性表顺序存储的概念:指的是在内存中用一段地址连续的存储单元依次存储线性表中的元素. 2. 采用的实现方式:一段地 ...

  3. websocket+sockjs+stompjs详解及实例

    最近有项目需求要用到websocket,刚开始以为很简单,但是随着遇到问题,深入了解,才知道websocket并不是想象中的那么简单,这篇文章主要是考虑websocket在客户端的使用. 1.http ...

  4. Vue.js 学习笔记之二:数据驱动开发

    在 Vue.js 框架中,与 HTML 页面元素的交互方式没有像原生 JavaScript 接口那么直接,它是通过先在 HTML 元素标签中嵌入一系列类似于普通标签属性的 Vue 指令属性来绑定数据, ...

  5. Python练习题 018:打印星号菱形

    [Python练习题 018] 打印出如下图案(菱形): * *** ***** ******* ***** *** * --------------------------------------- ...

  6. java转python代码

    今天发现一个好玩的工具:可以直接将java转成python 1. 安装工具(windows 环境下面) 先下载antlr: http://www.antlr3.org/download/antlr-3 ...

  7. 远程触发Jenkins的Pipeline任务的并发问题处理

    前文概述 本文是<远程触发Jenkins的pipeline任务>的续篇,上一篇文章实战了如何通过Http请求远程触发指定的Jenkins任务,并且将参数传递给Jenkins任务去使用,文末 ...

  8. 唯品会Java开发手册》1.0.2版阅读

    <唯品会Java开发手册>1.0.2版阅读 1. 概述 <阿里巴巴Java开发手册>,是首个对外公布的企业级Java开发手册,对整个业界都有重要的意义. 我们结合唯品会的内部经 ...

  9. Python+Appium自动化测试(12)-通过坐标定位元素

    在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝 ...

  10. golang不想http自动处理重定向的解决方案

    目录 前言 解决方案 结论 前言     有时候发送http请求不想让库自动帮忙处理重定向,库里面默认的是会把所有重定向都完成一遍,结果就是最后一个没有重定向的请求的结果.因此需要一种方案直接获取首次 ...