本文主要用到的插件是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,sourceswithJavadocJar()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.pathtokenName = "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
保持一致