使用Gradle – 2019版从Travis可靠发布到Maven Central

得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠。

背景

如果您仅想获取信息,如何使您的工件从Travis发布更可靠,请前进到另一部分。

从Gradle到Maven Central的自动工件发布(使用暂存库及其升级)一直很棘手。 与这些操作相关的Nexus REST API的文档非常少。 另外,即使已经显式创建了Gradle,它本身也不支持将工件上传到专用的暂存库。 结果,必须使用启发式方法来确定哪个存储库仅包含上载的工件,这带来了一些严重的局限性。 问题的根源是Travis在2018年秋末将其架构更改为更加无状态。这导致对特定工件的上载请求通过具有不同 IP地址的机器进行路由,从而导致为单个数据库创建多个陈述式存储库gradle uploadArchivesgradle publish调用。 这使得Travis的Gradle自动释放伪像的工作彻底中断了。 直至现在。

Maven中央

改进措施

年末发生了两件事。 首先是Marc Philipp 发布的新的nexus-publish插件。 它使用Nexus API创建了一个明确的登台存储库,并增强了Gradle发布任务以使用该存储库。 第二件事是对我的gradle-nexus-staging插件进行了增强,该插件开始允许设置发布操作期间应使用的登台存储库ID。 从而提高了使用Gradle发布到Maven Central的可靠性。

无需依靠启发式方法确定应使用哪个存储库进行发布,而是显式创建了新的登台存储库。 工件直接上传到它,它已关闭并释放。 因此,一切都变得更加流畅,并且更加防错。 此外,并行发布属于同一暂存配置文件的不同项目没有问题,并且最终可以与Travis再次正常使用。

组态

这篇文章假设您已经配置了使用maven-publish插件将工件上传到Maven Central(又名The Central Repository)。 如果没有,您可以查阅此链接 。 此配置将使您的部署和发布更加可靠,而无需在Nexus UI中进行任何手动操作。

 plugins { ... //other plugins used in your project id 'io.codearte.nexus-staging' version '0.20.0' id 'de.marcphilipp.nexus-publish' version '0.2.0'  }  publishing { ... //your current publishing to Maven Central configuration  }  //optionally  nexusStaging { packageGroup = "your-package-group-if-different-than-groupId"  }  //optionally  nexusPublishing { //for custom configuration if needed - credentials are by default taken from nexus-staging  } 

您期望编写更多代码(配置)吗? 一切都隐藏在相互利用的插件中。 请记住使用nexus-staging 0.20.0+和nexus-publish 0.2.0+。

之后,发布和发布工件就只需一个命令:

 . /gradlew publishToNexus closeAndReleaseRepository 

不是publish ,而是使用publishToNexus任务,该任务用于设置登台存储库ID和closeAndReleaseRepository ,用于关闭和释放该特定存储库。 几分钟后,您的工件应在Maven Central中可用。

重要的 。 请记住,必须在一个Gradle执行中使用publishToNexuscloseAndReleaseRepository才能利用显式创建的登台存储库。

摘要

Gradle是一个非常不错的构建工具,(几乎)天空是极限。 不幸的是,仍然存在一些长期存在的问题,需要使用一些技巧或编写自定义插件来克服它们。 有希望的是,随着每个发行版的发布,它们都将被缓慢地修复/ 实施 。 为了解决该特定问题,需要进行自下而上的工作以将Travis的释放恢复正常,并且更可靠。

请注意 。 提出的方法非常适合使用(最近改进的)发布插件。 如果您仍然使用旧的maven插件(具有uploadArchives任务而不是publish任务),则需要迁移和/或在相应的问题中添加评论。

翻译自: https://www.javacodegeeks.com/2019/02/releasing-maven-central-travis-gradle.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring admin mysql_easyadmin: 简易的java后台管理框架,基于SpringBoot+FreeMark+ace admin+mysql...

easyadmin数据库一定要用utf8mb4编码,记得先执行manager.sql,再执行initdata.sql,其中tenant表不用管,这是我打算做的另外一个项目设计的表,因为直接复制的本项目,怕到时候忘记,所以没有删除拦截器相关文档…

【渝粤教育】国家开放大学2018年春季 0050-21T民族理论与民族政策 参考试题

科目编号:0050 座位号 2017-2018学年度第二学期期末考试 民族理论与民族政策 试题 2018年 7 月 一、单项选择题(在各题的备选答案中,只有1项是正确的,请将正确答案的序号,填写在题中的括号内。每小题2分,共…

SDI高清视频光端机特点有哪些?

SDI视频光端机设计和生产是适用于电视行业的高可靠、高性能的串行数字光传输设备,信号格式从19.4Mbps到1.485Gbps, 系统支持SMPTE292、SMPTE259M、SMPTE297M、SMPTE305M、SMPTE310M以及DVB-ASI(EN50083-9)等数字电视格式的信号,满足工业级产品的要求。那么&#xff…

【渝粤教育】国家开放大学2018年春季 0089-21TInternet和Intranet应用 参考试题

编号:0089 座位号: 17-18学年第1学期期末考试 Internet和Intranet应用试题 一、填空题:(每空4分,共40分) 1.Internet上各种网络和各种不同计算机间相互通信的基础是___________协议。 是WWW中…

SDI光端机是什么?SDI光端机产品介绍及监控方案!

SDI光端机就是光信号传输的中端设备。光纤价格的降低使它在各个领域得到很好的应用,因此各个光端机的厂家就好比是雨后春笋般发展起来。但是这里的厂家大部分技术并不是完全成熟,开发新技术需要耗资和人力、物力等,这就产生厂家多是中小企业&…

【渝粤教育】国家开放大学2018年春季 0105-21T酒店营销实务 参考试题

科目编号:0105 座位号 2017年度第二学期期末考试 酒店营销实务 试题 2018年7月 一、名词解释:(每题5分,共20分) 1.酒店的营销渠道: 产品生命周期: 市场营销: 酒店产品…

【渝粤教育】国家开放大学2018年春季 0177-21T电机学(二) 参考试题

编号:0177 a 2017-2018年度第二学期期末考试 电机学(2) 试 题 2018年 7 月 一、填空题(每空 4分 ,共40分)1.一台隐极三相同步发电机时空向量中+j轴与+A轴重合,某瞬间转子…

adf可以自定义溶剂吗_ADF Faces。 立即的自定义客户端事件

adf可以自定义溶剂吗在本文中,我将重点介绍ADF Faces Javascript API方法以从客户端触发自定义事件。 例如: function cliListener(actionEvent) {AdfCustomEvent.queue(actionEvent.getSource(), "servListener",null, true);}我们可以使用a…

【渝粤教育】国家开放大学2018年春季 0234-21T公务员制度讲座 参考试题

科目编号:0234 座位号 2017-2018学年度第二学期期末考试 公务员制度讲座 试题 2018年 7 月 一、名词解释(本大题共2小题,每小题10分,共计20分) 1.公务员考试录用 2.任职前公示制度 二、单选题…

VGA光端机技术原理及应用领域介绍

VGA光端机采用纯数字传输模式,能从根本上克服普通铜芯电缆传输系统在传输高频带信号时造成的拖尾、重影等现象,清晰的重现图象画面。VGA光端机传输的是光信号,没有电磁辐射,系统具有极高的保密性。同时VGA光端机把显示设备和信号源…

java getbytes 长度_JAVA中的getBytes()方法

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同情况下,返回的东西不一样!String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如&…

【渝粤教育】国家开放大学2018年春季 0273-21T中国现代文学 参考试题

试卷编号:0273 座位号 2017——2018学年度第二学期期末考试 中国现代文学 试题 2018年7月 1.在文学革命中,_________提出的“八事”和陈独秀提出的“____________”,成为文学革命的主要内容。2.1921年10月出版的小说…

【渝粤教育】国家开放大学2018年春季 0341-21T高级英语听力(2) 参考试题

试卷代码:0341 2017-2018学年度第二学期期末考试 高级英语听力(2)试题 2018年7月 注 意 事 项 一、将你的准考证号、学生证号、姓名及分校(工作站)名称填写在答题纸规定栏内。 考试结束后,把试卷和答题纸放…

按应用领域来划分,电话光端机主要分为哪几类

我们都知道,电话光端机就是把传统的电话信号转换成光信号并在光纤上进行传输的设备。但是对于电话光端机的分类这块,大家可能了解的并不是很清楚,电话光端机根据不同的分类方式,有着不同的分法,今天飞畅科技的小编主要…

java构造函数可以重写_JAVA构造器,重载与重写

1. java构造器构造器也叫构造方法(constructor), 用于对象初始化. 构造器是一个创建对象时被自动创建的特殊方法,目的是对象的初始化. 构造器 的名称与类的名称一致. JAVA通过new关键子来调用构造器,从而返回该类的实例,是一种特殊的方法.备注要点:a. 通过new关键字来调用b. 构…

JUnit 5测试中的临时目录

JUnit 4 TemporaryFolder Rule允许开发人员使用临时目录创建测试。 使用JUnit 5时,不支持Rule因此测试文件和目录需要一些额外的工作。 幸运的是,有了JUnit 5.4,有一个新的内置扩展可以处理测试中的临时目录。 而且它非常易于使用。 您还在使…

【渝粤教育】国家开放大学2018年春季 0508-21T影视特技及后期合成 参考试题

科目编号:[0508] 座位号 2017-2018学年度第二学期期末考试(开卷) 影视特技及后期合成 试题 2018年 7 月 一、填空题(本大题共7小题共10空,每空3分,共计30分) 1.非线性编辑系统由两大部分组成,即…

【渝粤教育】国家开放大学2018年春季 0579-22T电路及磁路(2)(一) 参考试题

科目编号:0579 座位号: 2018-3正考期末考试 电路及磁路(2)(一) 试 题 2018年7月 1.电流源是一种理想化电源元件,它具有两种基本性质:(1&#x…

光纤收发器长距离的传输过程出现死机的解决方案

光纤收发器是网络通信中必不可少的一种设备,但是,我们在使用过程中难免会遇到各种各样的问题,其中,光纤收发器出现死机可以说是很常见的一种故障,那么,光纤收发器经常会出现死机到底是什么原因,…