如何发布代码到maven中心仓库
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中心仓库的更多相关文章
- maven中心仓库OSSRH使用简介
目录 简介 为什么使用中心仓库 发布到中心仓库前的准备工作 使用OSSRH 使用Sonatype创建ticket 中央仓库中的组件要求 提供Javadoc 和源代码 使用GPG/PGP给文件签名 Me ...
- Maven学习总结(三):修改从Maven中心仓库下载到本地的jar包的默认存储位置
一:修改从Maven中心仓库下载到本地的jar包的默认存储位置 从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home ...
- 修改从Maven中心仓库下载到本地的jar包的默认存储位置及远程仓库
从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\g ...
- 使用CI/CD工具Github Action发布jar到Maven中央仓库
之前发布开源项目Payment Spring Boot到Maven中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一直在寻求一 ...
- Maven中心仓库
当你使用Maven构建一个项目,Maven会检查你的pom.xml文件,找出需要下载的依赖包.首先它会到本地仓库查找所需的文件,如果没找到,就到默认的中心仓库(这是新的http://search.ma ...
- 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 发布构件到Maven中央仓库
一.注册jira账号 访问如下网址: https://issues.sonatype.org/secure/Signup.jspa 记住邮箱,用户名,密码以备以后使用,一定牢记. 二.创建一个issu ...
- 发布项目到maven中央仓库
https://www.xiaominfo.com/2017/04/25/swagger-bootstrap-ui-issue-maven-central/?tdsourcetag=s_pcqq_ai ...
- Maven发布Release到中心仓库历程记录(无个人域名)
Maven发布Release到中心仓库历程记录(无个人域名) 前言 因为前段时间自己做了一个爬虫项目(地址),自己很希望分享到maven中心仓库上,感觉拥有自己的jar包令我兴奋,便开始了maven发 ...
随机推荐
- Windows批处理(cmd/bat)常用命令学习
前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序 ...
- Presto 标量函数注册和调用过程简述
在Presto 函数开发一文中已经介绍过如何进行函数开发,本文主要讲述标量函数(Scalar Function)实现之后,是如何在Presto内部进行注册和被调用的.主要讲述标量函数是因为:三类函数的 ...
- 海量数据分库分表方案(二)技术选型与sharding-jdbc实现
上一章已经讲述分库分表算法选型,本章主要讲述分库分表技术选型 文中关联上一章,若下文出现提及其时,可以点击 分库分表算法方案与技术选型(一) 主要讲述 框架比较 sharding-jdbc.zdal ...
- Spring学习(十)--Spring的AOP
1.Spring AOP拦截器 (1)设计原理 Spring AOP在通过JDK的Proxy或者CGLIB方式生成代理对象的时候,拦截器的相关信息就配置到代理对象中了. 1)如果使用JDK的Proxy ...
- Pipelines
https://blog.csdn.net/buracag_mc/article/details/100155599 ML Pipelines提供了一组基于DataFrame构建的统一的高级API,可 ...
- 记一次ElementUI源码修改过程
修改目的 使用ElementUI el-tree过程发现选中节点,键盘移动上下键时(key down\key up)el-tree默认高亮移动的节点,业务上需要重写此事件. 从官网发现该事件没有暴露 ...
- 026 01 Android 零基础入门 01 Java基础语法 03 Java运算符 06 if-else条件结构
026 01 Android 零基础入门 01 Java基础语法 03 Java运算符 06 if-else条件结构 本文知识点:Java中的if-else条件结构语句 上文回顾--if条件结构 如果 ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
- SetDlgItemInt(函数详解)
参考:https://blog.csdn.net/for_cxc/article/details/51799194 SetDlgItemInt(hwnd, IDC_TEXT, FREQ_INIT, F ...
- 101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联——方案二
101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联--方案二 本文知识点:通过方法实现学生类与 ...