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

本文共 4031 字,大约阅读时间需要 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=YourKeyId
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=PathToYourKeyRingFile

ossrhUsername=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.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.cnblogs.com/lovellll/p/10093894.html

你可能感兴趣的文章
编译器介绍--OpenWatCOM
查看>>
spring4配置文件详解
查看>>
Xcode中Info.plist文件各个键的作用说明
查看>>
grub2的mbr分析
查看>>
Python网络通信TCP服务端
查看>>
java对象的强引用,软引用,弱引用和虚引用
查看>>
管理布局-EasyUI-2
查看>>
FreeMarker学习(二):数值和类型
查看>>
mysql数据库Limit分页使用
查看>>
autoresizingMask
查看>>
jenkins构建历史丰富插件
查看>>
ES6 箭头操作符简单例子
查看>>
Magento安装时数据库不支持InnoDB存储引擎问题的解决
查看>>
【原创】抓包分析RabbitMQ的帧数据构成
查看>>
【原创】具有path autovivification和conversion功能的JSON库
查看>>
想编写出优秀技术文档,先学学这四招
查看>>
mongodb分页优化
查看>>
qml定时
查看>>
Spring-Boot结合Spring-Kafka接收Kafka消息
查看>>
Android GLSurface 除绘制物体外,其余为透明
查看>>