deploy to sonatype

参考1:https://www.cnblogs.com/windliu/p/9524478.html
参考2:https://www.cnblogs.com/songyz/p/11387978.html

1申请sonatype账号

申请账号的地址在这里: https://issues.sonatype.org/secure/Signup!default.jspa
申请完成之后,我们需要提供相应的项目信息,地址在这里:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134
填写group Id,需要按要求填写

Project: Community Support - Open Source Project Repository Hosting (OSSRH)
Issue TypeRequired: New ProjectSummary: java-toolkits (自己项目名称)
Group Id:com.github.songyz0310 (maven项目坐标 Group Id)
Project URL:https://github.com/songyz0310/java-toolkits (项目地址)
SCM url:https://github.com/songyz0310/java-toolkits.git (源代码地址)

创建之后,等待审核

2 修改setting.xml添加server项

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

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

nexus-releases xx xxxxx #### 3 修改pom.xml 添加项目信息 ``` 你的可用的groupid如果是github上的,gitbub.com/groupid 对应io.github.groupid 项目id 版本 cube-kociemba 项目开源url也github项目地址 必须 项目描述 必须 ``` #### 4增加发布插件 ``` org.apache.maven.plugins maven-javadoc-plugin 2.10.2 attach-javadocs jar -Xdoclint:none ${java.version} org.apache.maven.plugins maven-source-plugin 2.4 attach-sources package jar-no-fork org.apache.maven.plugins maven-gpg-plugin 1.6 sign-artifacts verify sign org.apache.maven.plugins maven-release-plugin 3.0.0-M1 ``` #### 5GPG秘钥生成 安装gpg windows需要先下载gpg软件版本 https://gpg4win.org/download.html 按提示操作过程中,需要自己写一个key,在mvn clean deploy 录入对应的key来验证 gpg的作用是生成公钥,用于加密相关jar包 Mac 版本 brew install gpg

生成密钥的命令
过程中需要使用到姓名、邮箱等信息,这里的配置最好和Sonatype注册信息、pom文件配置信息保持一致,以免不必要的麻烦。

# gpg --gen-key

生成的过程中,会有个弹框要求输入Passphase信息,这个是密钥的密码,同样需要记牢。发布签名的过程中会用得到。
使用 gpg --list-keys 命令查询配置好的公私钥信息

发布共钥

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 公钥ID
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID

6打包、上传

首先将version修改为 1.0-SNAPSHOT 带上SNAPSHOT,表明它是快照版本
执行mvn clean deploy,期间会要求录入生成gpg秘钥时输入的密码,校验成功才会上传, 这时包就上传到远程本地仓库了,但其他人还不能下载

首先将version修改为 1.0.0,表明它是release版本
mvn release 插件并非必须的,在第一次发布时,只要符合规范,mvn clean deploy 就已经做完了全部事情
mvn release 主要用于将代码提交到远程仓库中去,并非必须品执行
mvn release:prepare
mvn release:perform

7正式发布

到https://oss.sonatype.org/#stagingRepositories登录,
选择自己的仓库,先CLOSE,再Release
如果是第一次发布,在Issue下告知一下工作人员
过一会就可以再maven中心仓库查看到了

8收尾工作

对自己提交的Issue增加Comment,留言致谢并表示发布已经完成,请工作人员关闭Issue。

遇到的问题

Event: Failed: Signature Validation

Event: Failed: Signature Validation
Friday, April 10, 2020 11:55:19 (GMT+0800)
typeId  signature-staging

需要将公钥发布到 PGP 密钥服务器,两个密钥服务器都要发布,我只发布了一个,导致了错误。

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 公钥ID
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID

查询公钥是否发布成功

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 公钥ID
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 公钥ID

https://keys.openpgp.org/ 密钥是否成功查询地址
————————————————
原文链接:https://blog.csdn.net/pdsu161530247/article/details/105429597/

signing failed: Inappropriate ioctl for device

最近上传jar到中央仓库的时候,遇到一个问题:

gpg: signing failed: Inappropriate ioctl for device

原因是 gpg 在当前终端无法弹出密码输入页面。

解决办法很简单:

export GPG_TTY=$(tty)
重新执行,发现会弹出一个密码输入界面。

Command line was: /Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/bin/javadoc

[ERROR] Command line was: /Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/bin/javadoc @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in ‘/Library/WebServer/weailove/backend-j/service/demo-cube/target/apidocs’ dir.

原因:本机安装了多个版本的jdk,在编译中需要指定javadoc的jdk版本

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.10.2</version><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals><configuration><additionalparam>-Xdoclint:none</additionalparam><source>${java.version}</source></configuration></execution></executions></plugin>

Failed to transfer file: Return code is: 409, ReasonPhrase: Conflict.

 Failed to deploy artifacts: Could not transfer artifact io.github.ddd-spring:ddd-common:jar:1.2.0 from/to rdc-releases (https://packages.aliyun.com/maven/repository/2076201-release-TGtEah/): Failed to transfer file: https://packages.aliyun.com/maven/repository/2076201-release-TGtEah/io/github/ddd-spring/ddd-common/1.2.0/ddd-common-1.2.0.jar. Return code is: 409, ReasonPhrase: Conflict. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project ddd-common: Failed to deploy artifacts: Could not transfer artifact io.github.ddd-spring:ddd-common:jar:1.2.0 from/to rdc-releases (https://packages.aliyun.com/maven/repository/2076201-release-TGtEah/): Failed to transfer file: https://packages.aliyun.com/maven/repository/2076201-release-TGtEah/io/github/ddd-spring/ddd-common/1.2.0/ddd-common-1.2.0.jar. Return code is: 409, ReasonPhrase: Conflict.

原因: 因为的groupid【io.github.ddd-spring】和在ssues.sonatype.org 【io.github.ddd-srping】里提交的不一致导致的提交被拒绝的错误,单词拼写反了,哎!左手比右手快了半拍还真是耽误事

将自己的jar上传到mavn仓库中遇到的问题相关推荐

  1. 如何将本地文件利用git工具上传到github仓库中(超详细+最新版)

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 如何将本地文件利用 ...

  2. 本地jar 上传到maven仓库

    1.Maven环境准备 下载maven安装包,解压后配置好path环境变量.具体配置请参考百度 注意一般maven仓库有两个目录可以上传 /maven-snapshots/ 和 /maven-rele ...

  3. maven install 本地jar上传到本地仓库

    做某些项目时经常会用到别人提供的sdk,基本都是用jar的形式提供,这样我们在maven工程中引用就不方便,可以通过上传本地maven库的方式解决. 以移动云的mq接入为列,先下载好SDK jar,然 ...

  4. 将本地创建的工程上传到github仓库中

    1. 在idea的命令行执行(或者git切换到工程的根目录) #  git init 2. #git add . 3. git commit -m "注释" 4. 到github上 ...

  5. 合并远程仓库到本地_使用命令行把你新建的项目上传到GitHub仓库中

    强行合并两个仓库 第二种方法就是先将本地的项目初始化为一个git仓库,然后再强行合并本地仓库和远程仓库,由于这两个仓库是完全不同的两个仓库,所以直接pull都会报错,需要在pull的时候假加上–all ...

  6. Git入门最终集!SSH公钥是乱码怎么办?IDEA与Git!将自己的代码上传至远程仓库!

    Git入门最终集!SSH公钥是乱码怎么办?IDEA与Git!将自己的代码上传至远程仓库! 一.更改用户名和主机名! 因为当时Windows设置的用户名为中文名称,导致生成的SSH密钥是乱码非常难受,原 ...

  7. git怎么上传文件到别人的仓库_Git将本地代码上传至远程仓库

    之前做项目接触的版本管理工具都是用的SVN.但是目前行业中比较流行的是Git.更有民间说法讲不会Git的话都找不到工作.所以最近趁业余时间来学习了一下怎么使用Git(感觉SVN真的挺好用的.嘿嘿嘿). ...

  8. GitHub上传本地代码到仓库[Windows]

    1.前言 GitHub很久之前就想比划了,今天装了一下.可是在将本地代码上传到项目仓库中的时候遇到了一点问题,CSDN上也讲了很多方法,作为小白简单地记录一下我的心得. 2.GitHub安装 我采用了 ...

  9. gradle 上传jar包_gradle 打包jar上传到nexus 同时上传源码jar

    以我们实际项目为例,项目中后台和前台单独开发,之间通过dubbo接口调用,后台提供服务接口,具体实现对前台隐藏,前台使用某个服务时,下载相应依赖然后调用,因此需要将服务接口打成jar包,上传到仓库中, ...

最新文章

  1. KKT条件和拉格朗日乘子法
  2. 机器学习:SVM多分类,SVM回归(SVR)
  3. 转:SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究
  4. [翻译]Telnet简单介绍及在windows 7中开启Telnet客户端
  5. 新闻发布项目——业务逻辑层(categoryTBService)
  6. 【转】TCP/IP协议——ARP详解
  7. Timus 1079. Maximum
  8. Git中的‘HEAD’是什么?- Git名词解释
  9. linux静态与动态库创建及使用实例
  10. 区块链技术指南之分布式系统核心问题
  11. JAVA获取word书签内容_java操作word可操作书签
  12. 捷联惯导系统模型及仿真(二)
  13. 深度森林:探索深度神经网络以外的方法
  14. python报告生成器_利用Python实现报告自动生成
  15. 没登录的计算机怎么远程桌面,没有远程登陆工具如何远程电脑 如何用向日葵实现远程登陆?...
  16. XTU 1339 Interprime
  17. 让Firefox支持Wap浏览器功能的插件
  18. 盒子鱼 android4.2.2,BOXFiSH盒子鱼家长
  19. 简单工厂,工厂,抽象工厂
  20. 基于sparkMLlib的机器学习_[1]_基本数据类型[4]分布式矩阵DistrubutedMatrix

热门文章

  1. ESP8266 arduino 一键配网之后掉电不丢失wifi数据
  2. java class对象_java class对象
  3. Linux大师(古鲁,Guru)推荐什么?
  4. [视频处理] 使用copy命令合并视频
  5. GetGestureInfo 函数-中文整理
  6. 用友财务软件--T3
  7. 冈萨雷斯《数字图像处理》学习笔记(八)图像压缩
  8. python和我的世界什么关系_我的世界史帝夫和him是什么关系?
  9. MySQL索引的创建与使用
  10. 【实战】(香港城市大学,微软亚洲研究院)让老照片重现光彩(一):Bringing Old Photos Back to Life