使用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表不用管,这是我打算做的另外一个项目设计的表,因为直接复制的本项目,怕到时候忘记,所以没有删除拦截器相关文档…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

什么是光纤收发器?光纤收发器的两种连接方案你了解吗?

在如今这个科技飞速发展的时代,网络变得越来越重要,而说到网络的发展和建设,那就离不开光纤的大量应用了,怎样才能在网络建设中更快更稳定的实现光信号与电信号的相互转换,是我们要考虑的一个重要问题。而光纤收发器正…

maven项目 ant_将旧项目从Ant迁移到Maven的4个简单步骤

maven项目 ant一段时间以来,我们一直在考虑将构建从蚂蚁移植到Maven。 它发生在上个月,实际上比我们预期的要简单。 根据我的经验,这里简要介绍了我们遵循的步骤。 我们的应用程序是一个具有多个框架和技术的企业Web应用程序构建,…

工业级千兆以太网光纤收发器产品介绍

工业级光纤收发器是一种可以延长传输距离的一种工业交换机,它具有便捷、维护简单、抗干扰性能强、性能强大、运行稳定等优点。产品设计符合以太网标准,性能稳定可靠。该设备可广泛应用于智能交通、电信、安防、金融证券、海关、海运、电力、水利及油田等…

Java 12新功能完整指南

六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本。 让我们满足Java 12及其向开发人员介绍的功能。 自甲骨文推出其6个月加速发布节奏以来已经有一段时间了,要跟上每个版本及其添加到表中的功能越来越难了。 从好的方面来说,…

如何预防光纤光缆布线中的雷击伤害

众所周知,光纤是具有不导电性的,可以免受冲击电流,光缆也具有良好的防护性能,光缆中的金属构件对地绝缘值较高,雷电流不易进入光缆,但因为光缆具有加强芯,特别是直埋光缆具有铠装层,…

三步法教你快速解决光纤收发器故障

光纤收发器,是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元,是网络通信中很重要的一种通信设备。但只要是机器,难免会有出现故障的时候,出现问题,找出问题,然后解决问题就…

网管光纤收发器产品硬件功能及网管收发器优点介绍

飞畅科技生产研发的网管型光纤收发器具有非网管收发器的全部功能,各种速率,单模/多模,单纤/双纤。此设备的网管界面设置简单,功能全面。此系列网管收发器支持多种网管方式,包括SNMP,WEB和Console等网管方式…

中北大学 软件构造 U+及上课代码详解

作业1 1.数据类型可分为两类:(原子类型) 、结构类型。 2.(数据结构)是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合 3.代码重构指的是改变程序的(结构)而不改变其行为,以便提高代码的可读性、易修改性等。 4.软件实…

如何挑选家用交换机 交换机选购攻略分享

现如今,伴随着网络的迅速普及,交换机的“身影”也开始出现在不少普通个人用户家庭中。不过许多家庭用户在挑选交换机时,往往都会将注意力集中到交换机的扩展性能上,他们一味地追求交换机的接口数要多;其实,…

oracle不维护java_宣布 Java 8 停止维护后,Oracle 又毙掉了 JavaOne!

2019 年 1 月之后,Oracle 将不会在网站上发布 Java SE 8 商业使用的更新下载。如需持续获取安全的 bug 修复和安全补丁以及 Java SE 8 或以前版本的稳定性支持,可以通过 Oracle Java SE 高级版,Oracle Java SE 高级桌面,或 Oracle…

工业以太网交换机有多少个快速以太网接口?

工业以太网交换机应用于复杂的工业环境中实时以太网数据传输,以太网交换机是非常的重要,它把握着一个网络的命脉,有人会提出以太网交换机有多少个快速以太网接口?到底该如何进行选择呢?接下来我们就跟随飞畅科技的小编…

java判断是否第一次出现_利用java判断字符首次出现的位置,java替换最后一个特定字符...

利用java判断字符首次出现的位置利用爪哇判断字符首次出现的位置,目的:(学习视频分享:java视频教程实现代码如下:导入Java。util。收藏品;导入Java。util。LinkedList导入Java。util。列表;导入Java。util。…