博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将Gradle项目发布到Maven Central库中
阅读量:5962 次
发布时间:2019-06-19

本文共 4117 字,大约阅读时间需要 13 分钟。

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

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

申请账号

前往 申请账号。

申请完,Create Issue。

按照填。

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

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

证明有以下3个途径:

  1. Add a TXT record to your DNS referencing this JIRA ticket: OSSRH-44681 (Fastest)
  2. Setup a redirect to your Github page (if it does not already exist)
  3. Send an email to central@sonatype.com referencing this issue from a ... email address

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

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

  1. Deploy snapshot artifacts into repository
  2. Deploy release artifacts into the staging repository
  3. Promote staged artifacts into repository 'Releases'
  4. Download snapshot and release artifacts from group
  5. Download snapshot, release and staged artifacts from staging group

构建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=YourKeyIdsigning.password=YourPublicKeyPasswordsigning.secretKeyRingFile=PathToYourKeyRingFileossrhUsername=your-jira-id  你在sonatype申请的账号的用户名ossrhPassword=your-jira-password  你在sonatype申请的账号的密码

生成GPG加密信息

windows中可以安装gpg4win来生成相关信息。但是我个人在windows10中并没有能够打开。

所以我使用了WSL来生成相关信息。如果你的系统是Linux也可以。

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

    /root/.gnupg/pubring.gpgpub   2048R/B98765 2018-12-08uid                  sub 2048R/A123456
  3. 第一行便是对应的公钥文件位置,pug后面的B98765便是public key Id,这个id也就是上面gradle.properties中的signing.keyId
  4. 执行 gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys B98765将公钥发送到hkp://pool.sks-keyservers.net
  5. 记录下/root/.gnupg/secring.png的位置,这个位置便是上面gradle.properties中的signing.secretKeyRingFile的值。

发布过程

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

发布Snapshot版本

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

发布Release版本

clipboard.png

如果你的版本是release版本。

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

注意点

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

转载地址:http://yhjax.baihongyu.com/

你可能感兴趣的文章
Java基础学习总结(19)——Java环境变量配置
查看>>
关于Notice: Undefined index:问题解决方法
查看>>
MyBatis学习总结(9)——使用MyBatis Generator自动创建代码
查看>>
MyBatis学习总结(六)——调用存储过程
查看>>
利用rrdcached优化ganglia IO
查看>>
开源史上最成功的8个开源产品
查看>>
JNDI学习总结(1)——JNDI入门
查看>>
2015年终总结
查看>>
使用Emacs阅读邮件和新闻组:Gnus 中文FAQ
查看>>
支付宝 iOS SDK 的简单使用
查看>>
锐捷RG-12010交换机VSU虚拟化配置
查看>>
在JSP页面中调用另一个JSP页面中的变量
查看>>
CISCO路由与交换笔记
查看>>
构建基于postfix+dovecot+squirrelmail的邮件服务器
查看>>
CDN+DNS主从/视图+squid反向代理+nginx负载均衡+httpd/nginx/tomcat网站搭建+iscsi后端存储...
查看>>
CentOS (RedHat) 6.4 使用 OpenLDAP
查看>>
linux snmpd.conf
查看>>
Mac高效率开发工具
查看>>
ssh-keygen的使用方法
查看>>
mysql 日期和时间格式转换实现语句
查看>>