参考文章:https://blog.csdn.net/qq_41011894/article/details/123406711
https://issues.sonatype.org/
,未登录情况下直接会有登录输入框,无账号时点击sign up
进入注册页面邮箱
很重要!后续验证时频繁使用;账号
和密码
为登录使用;全名
可以随意输入。sonatype
账号后登录,直接点击标题栏的新建
按钮,默认选中的新建项目,如下两图:*
的必填项,其中Group Id
、Project URL
、SCM url
需要注意:
Group Id
:github项目可以使用io.github.[username]
其中[username]
为替换为自己github的用户名,比如我的github用户名是DingDangDog
,我则填写io.github.dingdangdog
。可以自定义其他名称,详细可阅读官方文档:https://central.sonatype.org/publish/requirements/coordinates/
Project URL
:github项目地址,如:https://github.com/DingDangDog/db-init
SCM url
:github项目代码下载地址,如:https://github.com/DingDangDog/db-init.git
信息填写无误后,网站审核员会回复你一个邮件,在网站问题页面也会有相同的回复内容。 简单来说,就是需要在你的
github
上创建一个指定的仓库,来确认该github
帐号是你本人的。
OSSRH-80997
的仓库。Group ID
填写的不是io.github.dingdangdog
,管理员让你修改后,将该问题的状态改为open
。按照第一次审核回复的信息,操作完成后,问题的状态改为Open
,等待二次确认,如果确认成功,会收到邮件和回复,回复信息如下。
https://central.sonatype.org/publish/publish-guide/#deployment
下载地址:
https://www.gpg4win.org/download.html
windows
会自带可视化工具Kleopatra
,后续操作会相对简单。Kleopatra
,点击文件
> 新建密钥对
,弹出如下创建向导使用密码句保护生成的密钥
,选中后,导出密钥等操作需要输入密码确认,更加安全些。RSA
,我刚开始使用默认的算法,总是不成功,参考了文章才解决:https://www.e-learn.cn/topic/1343735
。
服务器上查找...
,输入名称可以查到已上传的密钥。
CMD运行即可
),重新上传了密钥。shell# 将公钥发布到GPG密钥服务器
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID
# 查询是否已将公钥发布到服务器
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 公钥ID
公钥ID
,我使用的是上图打码的密钥ID
,通过在密钥上 右键 - 细节 - 导出,可以看到如下弹窗,复制指纹后16位即可。上述密钥操作成功后,需要到项目中配置相关脚本,并将密钥、maven帐号等相关信息配置好。下面直接贴出我的配置
gradle.properties
的文件,内容如下,注意填写自己的信息。shellsonatypeUsername= # 最开始注册测sonatype帐号 sonatypePassword= # sonatype密码 signing.keyId= # 密钥ID(指纹)后8位 signing.password= # 密钥保护密码 signing.secretKeyRingFile=E:/**/secring.gpg # 创建密钥最后一步生成的gpg文件目录
kotlinjar.enabled=true
apply plugin: 'maven-publish'
apply plugin: 'signing'
group 'io.github.dingdangdog'
version '1.0'
task sourcesJar(type: Jar) {
from sourceSets.main.allJava
archiveClassifier = 'sources'
}
task javadocJar(type: Jar) {
from javadoc
classifier = 'javadoc'
}
sourceSets.main.resources.srcDirs = ["src/main/java","src/main/resources"]
dependencies {
compile 'org.springframework.boot:spring-boot-starter-aop',
'org.springframework.boot:spring-boot-configuration-processor',
'org.apache.httpcomponents:httpclient:4.5.8',
'org.apache.httpcomponents:httpmime:4.3.1',
'io.jsonwebtoken:jjwt:0.7.0',
'com.itranswarp:compiler:1.0'
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId project.name
version project.version
//若是war包,就写components.web,若是jar包,就写components.java
from components.java
// artifact shadowJar
artifact sourcesJar
artifact javadocJar
pom {
// 构件名称
// 区别于artifactId,可以理解为artifactName
name = 'db-init'
// 构件描述
description = 'springboot数据库初始化插件'
// 构件主页
url = 'https://github.com/DingDangDog/db-init'
// 许可证名称和地址
licenses {
license {
name = 'MIT License'
url = 'https://mit-license.org/'
}
}
// 开发者信息
developers {
developer {
name = 'DingDangDog'
email = '****@qq.com'
}
}
// 版本控制仓库地址
scm {
url = 'https://github.com/DingDangDog/db-init'
connection = 'scm:git:https://github.com/DingDangDog/db-init.git'
developerConnection = 'scm:git:https://github.com/DingDangDog/db-init.git'
}
}
}
}
// 定义发布到哪里
repositories {
maven {
name 'db-init'
// url "https://oss.sonatype.org/service/local/staging/deploy/maven2"
url "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
credentials {
// 这里就是之前在issues.sonatype.org注册的账号
username = "${sonatypeUsername}"
password = "${sonatypePassword}"
}
}
}
}
signing {
sign publishing.publications.mavenJava
}
javadoc {
// <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
// 防止本地打开中文乱码
// options.addStringOption("charset", "UTF-8")
options.encoding = "UTF-8"
failOnError = false
}
publish
即可自动发布。发布成功后,出现如下信息sonatype
帐号登录。https://s01.oss.sonatype.org/#welcome
Staging Repostories
- 勾选项目
- close
。成功后状态Activity
会改变为Operation in progress
正在运行,其实他正在检测你发布的程序。close
后,他会运行一段时间,验证你发布的项目是否符合规范,不符合规范会报错,如下图,我第一次发布时报的错。
javadoc
相关的脚本给注释掉了,没有发布javadoc
相关信息,当时publish
是成功了,但是到这一步又出现问题了,所以还是不能偷懒啊。。。(PS:因为发布`javadoc`会校验你的注释是否规范,不规范的情况下会报很多错,我就想着不发布`javadoc`试试,还真的发布成功了
)Close
报错全部解决后,重新运行上传脚本publish
,然后重新Close
,如果还报错,就重复以上步骤,直到Close
成功后,Release
亮起!Release
但是此时可能还无法立即根据坐标引用自己的依赖,据说需要过10分钟左右才能真正发布到中央仓库。
写这篇文章时,我也是第一次发布项目,边写边走流程,如果有写的不对或不好的地方,欢迎批评指正。
建站因为热爱,生活需要Money,请屏幕前的大佬动动您发财的小手,点击一次以示鼓励,祝您生活愉快!
PS:就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本。
如果看不到广告,可能是网络原因或被拦截了,那就算了吧。再次祝您生活愉快~~
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!