首发于Enaium的个人博客
注册账户
发布问题(创建新的工程)
https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134
摘要:项目名称
Group Id:组名 这里要用自己的域名的话一定要保证有域名的所有权,后面会让你添加dns记录来验证
Project URL仓库地址
SCM URL git地址
之后创建
等待回复 会让你添加DNS记录
添加后回复,这个地址要使用这个工具才能访问,直接执行命令后面跟着地址就行
等待回复之后就能上传了,他说上传之后回复
这里我使用Gradle
加上这2个插件
plugins {
id 'maven-publish'
id 'signing'
}
doc 和 source
java {
withJavadocJar()
withSourcesJar()
}
发布配置
配置后先别刷新
publishing {
//配置仓库
repositories {
//本地仓库
def ENV = System.getenv()
if (ENV.MAVEN_URL) {
maven {
url ENV.MAVEN_URL
}
}
//远程仓库
maven {
url "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
credentials {
username ossrhUsername
password ossrhPassword
}
}
}
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId project.name
version project.version
from components.java
//pom其他信息 这个必须加上不然等会发布验证不会通过
pom {
name = 'accessor'//项目名
description = 'Bytecode framework for java, Invoke private field and method'//描述
url = 'https://github.com/Enaium/accessor/'//地址
//协议
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
//开发者信息
developers {
developer {
id = 'enaium'
name = 'Enaium'
email = 'Enaium@outlook.com'
}
}
//git地址
scm {
connection = 'scm:git:https://github.com/Enaium/accessor.git'
developerConnection = 'scm:git:https://github.com/Enaium/accessor.git'
url = 'https://github.com/Enaium/accessor/'
}
}
}
}
}
//签名 这个放到最后
signing {
sign publishing.publications.mavenJava
}
在用户根目录的.gradle
里配置gradle.properties
signing.keyId=id
signing.password=密码
signing.secretKeyRingFile=文件路径.gpg
ossrhUsername=账户名
ossrhPassword=密码
下载工具
打开 kleopatra
创建
之后填上名字和邮箱
配置的ID填上后8位
导出
加密导出
设置密码
管理员运行命令
gpg --export-secret-keys -o 文件路径.gpg
上传到服务器
gpg --keyserver https://keys.openpgp.org --send-keys --send-keys 8位ID
好了 刷新Gradle
发布
在那个问题回复已经上传
回复之后就访问
https://s01.oss.sonatype.org/#stagingRepositories
输入账户密码登录
选中一个仓库groud_id-xxxx
,点上方的Close
如果成功的话再点,Close右边的release就行了
如果失败了的话点Activity产看信息
过一会收到信息
之后可以再 https://search.maven.org/ 搜索到包
如果升级版本或者在发布另一个仓库就不需要在创建问题了,直接上传就行,前提是group id不变
上传到Maven中央仓库是不是很麻烦