本文主要用到的插件是sonatype-uploader
, 该插件主要功能是上传依赖文件夹到中央仓库。
该文件夹的生成也十分简单,不用担心。
前言
最近在研究maven插件的时候发现发布的网站发生了变化,使用之前的一些插件没能满足我发布依赖的需求,也可能我的使用方法不对。于是有了今天的这个插件方案。
官网在这里,可以自己研究,也可以跟着博主一步步来。
github: https://github.com/jeadyx/SonatypeUploader
gitee: https://gitee.com/jeadyx/SonatypeUploader
一、先上代码
// build.gradle.kts
plugins{
`maven-publish` // 用于生成大md5,sha等文件
signing // 用于生成签名文件
id("io.github.jeadyx.sonatype-uploader") version "1.0" // 用于上传生成好的文件夹
}
group = "io.github.jeady5"
version = "1.0"
java { // 配置生成javadoc,sources
withJavadocJar()
withSourcesJar()
}
publishing { // 配置发布信息,改成适合自己的
publications {
create<MavenPublication>("mavenTest") {
artifactId = "test-library"
from(components["java"])
pom {
name = "My Library"
description = "A concise description of my library greennbg"
url = "http://www.example111.com/library"
properties = mapOf(
"myProp" to "value",
"prop.with.dots" to "anotherValue"
)
licenses {
license {
name = "The Apache License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
}
}
developers {
developer {
id = "jeady"
name = "jeady"
email = "jeady5@163.com"
}
}
scm {
connection = "scm:git:git://example.com/my-library.git"
developerConnection = "scm:git:ssh://example.com/my-library.git"
url = "http://example.com/my-library/"
}
}
}
}
repositories {
maven {
name = "project"
url = uri(layout.buildDirectory.dir("repo")) // 将要发布的文件夹生成到这个目录
}
}
}
signing{ // 文件签名
sign(publishing.publications["mavenJava"])
}
sonatypeUploader {
dir = layout.buildDirectory.dir("repo/io").get().asFile.path
tokenName = "your_token_user"
tokenPasswd = "your_token_password"
}
二、文件夹准备
根据readme提示,通过maven-publish
和singing
插件生成预发布目录.
-
maven-publish
插件生成依赖目录结构及md5、sha文件
配置好上面的发布信息后,执行sync,如果没有报错,则执行publishMavenTestPublicationToProjectRepository
任务
如果没报错,就可以在build文件夹中看到目录结构了
-
signing 插件生成签名文件
除了添加signing插件块外,还需要在gradle.properties
文件中添加签名信息
该信息可由gpg工具生成。
signing.keyId=3F9FFF22
signing.password=1234
signing.secretKeyRingFile=E\:\\gpg\\jeady_0x3F9FFF22_SECRET.gpg
配置完成后,再次执行publishMavenTestPublicationToProjectRepository
任务,如果没有error,则可以看到asc文件
- gpg工具官网下载地址,速度还可以: 直接下载(gpg4win-4.3.1.exe)
至此maven目录准备完成
- 账号注册与tokenuser、tokenpasswd获取
推荐使用github登录,不需要再添加dns txt记录就可以得到一个命名空间。
如果你有自己的域名,按照官网引导,一步步进行dns记录验证即可。
登录后的主页右上角,点击查看账户
生成用户token
继续生成,之前生成的token将失效
把得到的用户名密码填写到sonatypeUploader
配置块,或者使用文件gradle.properties
进行保存
配置完成后就可以执行发布了,依次执行即可。
四、常见问题
- 上传时提示401就是你的token不对,检查/重新生成UserToken
- 在上传后并没有完成发布,需要执行publish才能完成发布
- 在发布前需要检查上传的文件状态,只要配置没啥问题,一般没事
- 发布前需要状态为
VALIDATED
, 否则无法正常发布 - 发布成功后将无法删除和撤销
- 如果发生错误,可以在publishing查看错误信息
- 保证
group
配置项和经过验证的nameSpace
保持一致