资讯专栏INFORMATION COLUMN

将Gradle项目发布到Maven Central库中

SnaiLiu / 785人阅读

摘要:本文主要介绍如何一个由构建的项目部署到网上大部分都是介绍如何将由构建的项目部署到。申请账号前往申请账号。其中有和这两个变量是定义在中的。这些信息不要加入到版本管理中。发布过程当上述步骤全部完成时,可以直接执行。

本文主要介绍如何一个由gradle构建的项目部署到Maven Central.

网上大部分都是介绍如何将由maven构建的项目部署到Maven Central。与Gradle相关的比较少。

申请账号

前往 sonatype申请账号。

申请完,Create Issue。

按照这个模板填。

这一块比较简单,网上教程也比较多。

Create Issue结束后,官方会需要你证明你拥有相对应的domain。

证明有以下3个途径:

Add a TXT record to your DNS referencing this JIRA ticket: OSSRH-44681 (Fastest)

Setup a redirect to your Github page (if it does not already exist)

Send an email to central@sonatype.com referencing this issue from a ... email address

证明完毕之后,你就可以发布包了。

你就可以做下面几件事了:

Deploy snapshot artifacts into repository https://oss.sonatype.org/cont...

Deploy release artifacts into the staging repository https://oss.sonatype.org/serv...

Promote staged artifacts into repository "Releases"

Download snapshot and release artifacts from group https://oss.sonatype.org/cont...

Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/cont...

构建Gradle

下面主要内容基于 官方英文教程,加上一些个人构建时候的一些收获。

build.gralde 文件修改 引入plugin
apply plugin: "maven"
apply plugin: "signing"
task javadocJar(type: Jar) {
    classifier = "javadoc"
    from javadoc
}

task sourcesJar(type: Jar) {
    classifier = "sources"
    from sourceSets.main.allSource
}

artifacts {
    archives javadocJar, sourcesJar
}
引入UploadArchives task

引入UploadArchives这个task,记住更改里面的个人相关信息。

其中有ossrhUsernameossrhPassword这两个变量是定义在gradle.properties中的。

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
                authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            pom.project {
                name "Example Application"
                packaging "jar"
                // optionally artifactId can be defined here 
                description "A application used as an example on how to set up 
                pushing its components to the Central Repository . "
                url "http://www.example.com/example-application"

                scm {
                    connection "scm:git:git@github.com:username/project.git"
                    developerConnection "scm:git:git@github.com:username/project.git"
                    url "https://github.com/username/project"
                }

                licenses {
                    license {
                        name "The Apache License, Version 2.0"
                        url "http://www.apache.org/licenses/LICENSE-2.0.txt"
                    }
                }

                developers {
                    developer {
                        id "manfred"
                        name "Manfred Moser"
                        email "manfred@sonatype.com"
                    }
                }
            }
        }
    }
}
编写gradle.properties

主要是将一些认证信息填在这里。(这些信息不要加入到版本管理中)。

以下3个信息怎么来下一章节来讲
signing.keyId=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile

ossrhUsername=your-jira-id  你在sonatype申请的账号的用户名
ossrhPassword=your-jira-password  你在sonatype申请的账号的密码
生成GPG加密信息

windows中可以安装gpg4win来生成相关信息。但是我个人在windows10中并没有能够打开。
所以我使用了WSL来生成相关信息。如果你的系统是Linux也可以。

执行gpg --gen-key, 按照提示的信息填入密码,用户名等信息,这些信息记录下来。这里填入的密码就是上面gradle.properties中的signing.password

执行gpg --list-keys, 可以看到

/root/.gnupg/pubring.gpg
pub   2048R/B98765 2018-12-08
uid                  
sub 2048R/A123456 

第一行便是对应的公钥文件位置,pug后面的B98765便是public key Id,这个id也就是上面gradle.properties中的signing.keyId

执行 gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys B98765将公钥发送到hkp://pool.sks-keyservers.net

记录下/root/.gnupg/secring.png的位置,这个位置便是上面gradle.properties中的signing.secretKeyRingFile的值。

发布过程

当上述步骤全部完成时,可以直接执行gradle uploadArchives

发布Snapshot版本

如果你的版本是snapshot的,你可以直接在https://oss.sonatype.org/content/repositories/snapshots中看到你的包。

发布Release版本

如果你的版本是release版本。
登录https://oss.sonatype.org/#welcome,选择Staging Repositories,然后在右边用groupId去搜索。
这样会找到你的项目。选中你的项目close然后confirm。过一会再来寻找一次该构建,点击Release在Confirm。过一会就应该能在https://oss.sonatype.org/content/groups/public中看到你的项目了。

注意点

这里Close可能触发一些错误,可以点击下方的Activity来查看错误的原因。一般来说,可能是并没有javadoc和source导致的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72609.html

相关文章

  • 使用Gradle构建Java项目

    摘要:要从头开始,请继续使用构建。文件夹应包含项目运行单元测试的报告。由于该项目尚未进行任何单元测试,因此该报告无效。使用构建项目是启动构建的首选方式。现在可用于构建项目。概要恭喜您现在已经创建了一个简单而有效的构建文件,用于构建项目。 本指南将引导您使用Gradle构建一个简单的Java项目。 你要构建什么 您将创建一个简单的应用程序,然后使用Gradle构建它。 你需要什么 大约15分...

    xiaokai 评论0 收藏0
  • win10+vscode部署java开发环境

    摘要:最近在学,嫌太重,就自己摸索了一下用部署开发环境的方法,比较适合轻度入门级以及对比较熟不想换编辑器的搞法。部署是家的构建系统工具,一般上用的更多些。 最近在学Java,嫌IDE太重,就自己摸索了一下用VScode部署Java开发环境的方法,比较适合轻度入门级、以及对比较熟VScode不想换编辑器的搞法。 部署JDK其实之前在大概1.5的时候就看过一点Java的东西,也装过JDK还有...

    y1chuan 评论0 收藏0
  • 物联网平台thingsboard编译一步

    摘要:物联网平台编译一步到位物联网平台编译一步到位简介项目前置准备安装安装将放入本地缓存配置镜像地址编译运行物联网平台编译一步到位先上编译结果,耗时分秒简介是一个开源物联网平台,可实现物联网项目的快速开发管理和扩展。 ...

    刘永祥 评论0 收藏0

发表评论

0条评论

SnaiLiu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<