从Gradle自动将工件提升到Maven Central
快速教程,无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/发布到Maven Central。
介绍
Maven Central (又名“中央存储库”)(可能)是世界上最大的一组开源工件,这些工件被基于Java和JVM的项目使用。 它是由Apache Maven的创建者创建的,自2002年以来一直为工件提供服务。如今,有一些替代方法(在下面列出),但是对于许多用户而言,Maven Central仍然是项目依赖项的主要来源(有时是唯一被列入白名单的项目)。公司)。
问题
要执行发布到中央存储库的操作,Maven用户可以使用Nexus Staging Maven插件 -免费但不是完全开源的插件。 但是使用Gradle时,需要登录Nexus GUI并手动调用两个操作(关闭存储库和发布/升级存储库)。 连续交付方法非常无聊,而且存在很大问题。 幸运的是Nexus公开了REST API,通过做一些工作就可以做到这一点。 Gradle Nexus Staging插件应运而生。
快速开始
重要的 。 请注意,先决条件是在Sonatype OSSRH(OSS存储库托管)中具有活动帐户并已配置该帐户,并且Gradle项目配置为将发布工件发布到登台存储库中。 如果还没有的话,请遵循官方指南中 Gradle的单独章节 。
要在项目中设置自动发布/促销,请将gradle-nexus-staging-plugin添加到根项目的build.gradle文件中的buildscript依赖项中:
buildscript {repositories {mavenCentral()}dependencies {classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.1"}
}
应用插件:
apply plugin: 'io.codearte.nexus-staging'
配置它:
nexusStaging {packageGroup = "org.mycompany.myproject"stagingProfileId = "yourStagingProfileId" //when not defined will be got from server using "packageGroup"
}
在成功将档案上传(使用maven
, maven-publish
或nexus
插件)后,调用Sonatype OSSRH:
./gradlew closeRepository promoteRepository
关闭登台存储库并升级/发布它及其工件。 如果启用了与Maven Central的同步,则工件应在几分钟内自动出现在Maven Central中。
细节
该插件提供了两个主要任务:
closeRepository
–使用上载的工件关闭打开的存储库。 暂存配置文件中应该只有一个开放的存储库(可以使用Nexus GUI删除可能的旧/损坏的存储库)promoteRepository
–promoteRepository
/发布封闭的存储库(需要将工件放到Maven Central中)
还有一个:
getStagingProfile
–获取并显示给定软件包组的暂存配置文件ID。 这是一个获取值并将其作为stagingProfileId
放入配置闭包的诊断任务。 要查看结果,需要使用--info
开关调用gradle。
必须提到的是,调用Nexus REST API会立即结束,但是关闭操作会花费一些时间,因此,可以使用内置的重试机制一起调用closeRepository promoteRepository
。
该插件“与上传机制无关”,可以与maven
, maven-plugin
或nexus
插件一起使用。
有关更多详细信息和配置参数,请参阅项目网页或插件自己的发行版配置中的工作示例。
Maven Central的替代品?
它是更年轻,但很有前途的替代品-Bintray ,它也可以用来处理文物。 它对开源项目是免费的,我个人曾将其用于其他项目 ,甚至为Bintray,Travis和Gradle创建了自动发布机制 。 它可以正常工作,但要将工件也放到Maven Central中,则需要在服务器上存储用于唱歌的私钥,并提供Nexus凭据。 这增加了它们被盗的风险,在Codearte中,我们更喜欢使用私有Jenkins实例直接将其发布到Maven Central。
摘要
借助Gradle Nexus暂存插件 ,可以使用Gradle从命令行执行向Maven Central的整个发布过程,并且可以通过CI服务器完全自动执行一些其他工作。 没有更多按钮可推送Nexus GUI。 除了Sonatype OSSRH之外,该插件还可以与具有启用的登台存储库的私有Nexus实例一起使用。
顺便说一句,插件中可能有很多可以增强的地方。 如果您需要某些东西或发现了错误,请随时使用问题跟踪器进行报告。
感谢KubaKubryński的动机和帮助,他们分析了记录不充分的Nexus REST API。
翻译自: https://www.javacodegeeks.com/2015/03/automatic-promotion-of-artifacts-to-maven-central-from-gradle.html
从Gradle自动将工件提升到Maven Central相关推荐
- gradle maven_将工件从Gradle自动提升到Maven Central
gradle maven 快速教程,无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/释放到Maven Central. 介绍 Mav ...
- Gradle 配置阿里云代理 https,maven central 中央仓库,google,gradle plugin,jcenter
Gradle 配置阿里云代理 1. 问题描述 在使用Gradle更新项目依赖时,发生如下错误: Using insecure protocols with repositories, without ...
- gradle使用maven_使用Gradle – 2019版从Travis可靠发布到Maven Central
gradle使用maven 得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠. 背景 如果您仅想获取有关如何 ...
- 使用Gradle – 2019版从Travis可靠发布到Maven Central
得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠. 背景 如果您仅想获取信息,如何使您的工件从Travis发 ...
- eap aka_使用API密钥(aka身份验证令牌)部署到Maven Central
eap aka 如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信(尤其是使用Gradle,但不仅限于此). 基本原理 不幸的是,Gradle(和许多其他构建工具)没有 ...
- 使用API密钥(aka身份验证令牌)部署到Maven Central
如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信(尤其是使用Gradle,但不仅限于此). 基本原理 不幸的是,Gradle(和许多其他构建工具)没有提供任何机制来本 ...
- central maven_一键发布到Maven Central的方法
central maven 当我向Maven Central发布Java开源库jcabi-aspects的新版本时,我花了30秒钟的时间. 甚至更少. 最近,我发布了版本0.17.2. 您可以在Git ...
- 一键发布到Maven Central的方法
当我向Maven Central发布Java开源库jcabi-aspects的新版本时,我花费了30秒钟的时间. 甚至更少. 最近,我发布了0.17.2版本. 您可以在Github第80期中看到所有情 ...
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
第一部分:在bintray上创建package 首先,你需要在bintray上创建一个package.为此,你需要一个bintray账号,并在网站上创建一个package. 第一步:在bintray. ...
最新文章
- 肠里细菌“肚里蛔虫”:肠脑研究缘何越来越热
- 从底层理解Python的执行
- ZOC7 for Mac连接CentOS7无法输入中文问题
- Linux下ps -ef和ps aux的区别及格式详解
- 什么样的产品可以成功?
- CVPR 2021 目标检测、跟踪和姿态估计最新进展分享
- STM32标准库官网下载方法
- Kotlin 常用API汇总
- java怎么求素数_如何用Java求素数?
- Learn Git Branching 学习笔记(基础篇)
- 东周列国志美文摘录-晏平仲巧辩服荆蛮
- 【计算机网络——制作双绞线】
- leetcode——卖股票系列
- 带你学习DSP系列一:走进TMS320F28377
- composer 安装阿里云sdk
- uniapp轮播组件之自动轮播
- Python xlwings插入图片(Excel插入图片)
- Java开发思考笔记
- KUKA机器人到底该怎么安装
- 面试官问你HTTP状态码,你敢答吗?
热门文章
- java中input表单中的type=date返回类型【切记】
- javaSE视频教程正式启动
- 当当网新用户注册界面——CSS代码
- 2017蓝桥杯省赛---java---B---8(包子凑数)
- Mybatis实体类属性名与数据库类名不对应的两种解决方法
- cs1.5 linux服务端,Linux下架设CS1.5服务器
- mysql级联复制转换成一主两从_一主两从转级联复制
- 使用maven聚合安装多个maven工程到本地仓库报错的解决方法:child module pom.xml does not exist
- ReviewForJob——希尔排序(缩小增量排序)之塞奇威克增量序列
- Centos7-通过RPM方式安装MySQL5.7