使用gradle插件上传maven组件到maven中央仓库central.sonatype.com

1,507 阅读2分钟

本文基于插件sonatypeUploader 2.6版本

发布步骤

此步骤基于你已经注册好了sonatype网站账户,并且拥有了验证通过的NameSpace,如果用github登录会自动生成。 并且你已经配置好了signing签名工具在gradle.properties文件中。 其他情况,如:你已经发布了合法的文件夹格式到本地仓库,只需要上传功能,请参考git仓库里的readme说明。

1. 提前准备好sonatype账号和signing配置 2. 导入插件

plugins { 
    id("org.jetbrains.dokka") version "1.9.20" // kotlin代码生成javadoc的插件,不需要的话可以注释掉
    id("io.github.jeadyx.sonatype-uploader") version "2.6"
}

3. 配置插件信息

// 以`io.github.jeady5:$moduleName:1.0`为例
group = "io.github.jeady5"
version = "1.0"
sonatypeUploader {
   tokenName = "tokenUser" // 在sonatype中`View Account`页面进行生成: https://central.sonatype.com/account
   tokenPasswd = "tokenUserPasswd"
   pom = Action<MavenPom>{ // 配置pom信息,必须项; 改成你自己的信息即可,不知道的网址可以填自己的仓库地址。
       name = "My Library"
       description = "A concise description of my library greennbg"
       url = "http://www.example.com/library"
       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 = "jeady@example.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/"
       }
   }
}

4. sync项目
5. gradle publishToSonatype

Sync后的gradle任务说明

在这里插入图片描述

  • • 1.createDeploymentDir
    在本地生成要上传的工件目录,位置默认在模块的build\sonayUploader目录里面

  • • 1.uploadDeploymentDir
    上传刚生成的目录到sonatype 中心仓库

  • • 3.publishDeployment
    发布刚上传的工件,不可取消

  • • checkDeploymentStatus
    检查刚上传组件的状态

    在这里插入图片描述

    如果状态为FAILED, 请根据提示信息进行更改,博主遇到了两个

    • • 版本已存在: 更新版本解决

    • • 校验签名失败: 查看本地签名文件是否已上传公共服务器

  • • cleanLocalDeploymentDir
    删除本地生成的临时工件目录

  • • deleteDeployment 删除刚上传的工件

  • • publishToSonatype
    一键发布

注意事项

  1. 记得将公钥上传到公共服务器 可用的公钥管理服务器有:

如果你使用的是GnuPG, 还可以在gui中进行操作,右键证书有个在服务器发布

在这里插入图片描述

后记

使用中如果有什么问题,可以提交仓库issue