提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、创建sonatype账号
二、安装gpg环境
三、配置maven的settings.xml
四、配置pom.xml
五:deploy到中央仓库
六、在sonatype进行release
总结
发布jar到maven中央仓库需要五个步骤,其中第二步gpg安装和使用在不同的操作系统上存在差异性,这里着重讲解的是macos上gpg的使用方法。
提示:以下是本篇文章正文内容,下面案例可供参考
地址:Loading...
注意要记住账号密码,会用于我们后续的发布及相关操作
创建完账号后,请提交一个issues
选择:Community Support - Open Source Project Repository Hosting (OSSRH)
groupId:填写您的groupId
projectUrl :可以填写源代码所在的地址,或者官网首页,比如:https://gitee.com/wang-laoshi/shield.git
SCM url: 填写源代码的git地址,比如:https://gitee.com/wang-laoshi/shield
兜兜飞节
接下来按照提示验证域名(前提你需要一个域名并且能设置dns解析)
macos下安装gpg环境会遇到很多问题
默认命令: brew install gpg
但不太可能会一次成功,可能会遇到以下错误 gnupg: no bottle available!
解决方案: 将清华的软件源配置为brew的软件源
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
然后运行
gpg --generate-key
依次输入用户名,邮箱,然后按o确认
再输入两次密码,记住这个密码,然后会生成
记住pub第二行部分的公钥字符串,复制一下
注意这串很长的字符串,就是你的publickey,用于上传秘钥到opengpg
然后上传秘钥
gpg --keyserver http://keys.openpgp.org:11371 --send-keys 99EF4C04F5A776CC9E很长的公钥
至此,gpg部分结束
/Users/wanglaoshi/.m2/repository
sonatype-releases
你的sonatype用户名
你的sonatype密码
sonatype-snapshots
你的sonatype用户名
你的sonatype密码
mirror
central,jcenter,!rdc-releases,!rdc-snapshots
mirror
https://maven.aliyun.com/nexus/content/groups/public
sonatype
sonatype-releases::default::https://oss.sonatype.org/service/local/staging/deploy/maven2/
sonatype-snapshots::default::https://oss.sonatype.org/content/repositories/snapshots
gpg
你输入的gpg的密码
sonatype
4.0.0
org.springframework.boot
spring-boot-dependencies
2.7.6
net.quanter
shield-parent
shield-parent
pom
1.4.0
https://gitee.com/wang-laoshi/shield
您的描述
GNU Lesser General Public License Version 3
http://www.gnu.org/licenses/lgpl.txt
repo
master
https://gitee.com/wang-laoshi/shield
scm:git:https://gitee.com/wang-laoshi/shield
scm:git:https://gitee.com/wang-laoshi/shield
宽特
https://www.quanter.net
王老实
[email protected]
宽特
11
@
${java.version}
${java.version}
UTF-8
UTF-8
1.4.0-SNAPSHOT
sonatype
org.apache.maven.plugins
maven-gpg-plugin
3.0.1
sign-artifacts
verify
sign
org.sonatype.plugins
nexus-staging-maven-plugin
1.6.12
true
${releases.id}
https://oss.sonatype.org/
true
org.junit.jupiter
junit-jupiter-engine
5.9.0
test
org.apache.maven.plugins
maven-compiler-plugin
${maven.compiler.target}
${project.build.sourceEncoding}
org.apache.maven.plugins
maven-source-plugin
attach-sources
jar
org.apache.maven.plugins
maven-resources-plugin
${project.build.sourceEncoding}
org.apache.maven.plugins
maven-javadoc-plugin
${project.build.sourceEncoding}
${project.build.sourceEncoding}
${project.build.sourceEncoding}
attach-javadocs
package
jar
-Xdoclint:none
aggregate
aggregate
prepare-package
命令:
mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DskipTests
如果出现错误
gpg: 签名时失败: Inappropriate ioctl for device,是因为没有让终端具备输入框的能力
则执行:
export GPG_TTY=$(tty)
该处使用的url网络请求的数据。
登录https://oss.sonatype.org/
选择Staging Repositories,找到刚刚deploy上来的jar,选择close
如果正常情况下,不会出现警告标志,则说明成功了,如果gpg那一步失败了,则会出现无签名的警告
最后选择release
至此大功告成
最麻烦的可能是第一步和第二步,后面基本上只要网络通畅,按照步骤操作基本上没啥大问题。