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

gradle使用maven

得益于在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

gradle使用maven

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

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

相关文章

mysql 事件 day hour_Mysql事件调度器(Event Scheduler)

Mysql中的事件调度器Event Scheduler类似于linux下的crontab计划任务的功能,它是由一个特殊的时间调度线程执行的一、查看当前是否开启了event scheduler三种方法:1) SHOW VARIABLES LIKE ‘event_scheduler’;2) SELECT event_scheduler;3) SHOW PROCESSLIST;(是否有State为&a…

2020年全国儿童青少年总体近视率为52.7%,比上年上升2.5%播

2021年7月13日,国家卫健委召开新闻发布会介绍儿童青少年近视防控和暑期学生健康有关情况。国家卫健委疾控局副局长再那吾东玉山介绍,2020年上半年全民居家抗疫减少了户外活动和放松眼睛的时间,对近视防控工作带来了挑战。为全面评估近视率的情…

精简jdk包_在JDK 12精简数字格式中使用最小分数数字

精简jdk包帖子“ 紧凑数字格式出现在JDK 12中 ”演示了对JDK 12中 NumberFormat的支持,以支持紧凑数字格式 。 该帖子中显示的示例仅使用NumberFormat的实例,这些实例是通过调用NumberFormat的新重载getCompactNumberInstance(-)方法返回的,因…

mysql insert limit_Mysql Limit 调优

建表与插入数据SQL对比基本数据创建表CREATE TABLE student(id int(10) NOT NULL AUTO_INCREMENT,name varchar(25) DEFAULT NULL,age tinyint(2) DEFAULT NULL,live varchar(255) DEFAULT NULL,PRIMARY KEY (id)) ;批量插入1百万条数据DROP PROCEDURE IF EXISTS insert_Stu;DE…

预防近视的方法

推荐的方法里面有角膜塑形镜,也就是OK镜,还有低浓度阿托品、补光仪、离焦软镜、离焦框架眼镜等,阿托品离焦眼镜

spoon java_如何以及为什么使用Spoon分析,生成和转换Java代码

spoon javaSpoon是分析,生成和转换Java代码的工具。 在本文中,我们将看到通过使用以编程方式处理代码的技术可以实现什么。 我认为这些技术不是很为人所知或使用,这很遗憾,因为它们可能非常有用。 谁知道,即使您不想使…

下列支持mysql中文字符_MySQL中文支持问题

0. 本文目的让MySQL支持中文1. 测试环境Windows XP sp2,MySQL Server 5.1,MySQL Administrator 1.2.172. 操作步骤1)修改数据库的默认字符集(开始菜单) - MySQL - MySQL Server 5.1 - MySQL Server Instance Config Wizard:- Reconfigure Ins…

异常(Exception)的学习

1.Throwsable 的两个子类 Exception 和 Error 2.Exception 这是编译期异常,可以捕获处理 3.RuntimeException 表示运行期间的异常,它是 Exception 的子类 4.Error 这是程序错误,不可捕获处理。例如,内存溢出 5.throws 关键字&…

recorder_将Java Flight Recorder与OpenJDK 11一起使用

recorderJava Flight Recorder(JFR)曾经是Oracle JDK的商业附加组件。 由于它最近与Java Mission Control一起开源,因此使用OpenJDK 11的每个人现在都可以免费使用此出色的工具对Java应用程序进行故障排除。 JFR以前是专有解决方案&#xff0…

mysql 酒店管理设计_酒店管理系统的设计与实现(Myeclipse,MySQL)

酒店管理系统的设计与实现(Myeclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文12000字,程序代码,MySQL数据库)本系统是一个酒店管理系统,以Java Web技术为基础,采用MVC设计模式,利用MyEclipse编程平台结合MySQL数据库&…

可以在循环体内声明局部变量吗?

循环体声明的局部变量,第一次创建后,后面每次循环就不会再创建了。因为 JVM 在执行创建局部变量代码时,会先查询是否存在同名的局部变量,若存在则不会创建。如果有赋值,则直接删除旧的数据,保存新的数据&am…

传一个实体一个string_没想到,一个小小的String还有这么多窍门

1. 看看源码大家都知道, String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承)。我们先来看看 String 的源码。在 Java 8 中,String 内部使用 char 数组存储数据。在 Java 9 之后,String 类的实现…

envoy api 网关_在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南...

envoy api 网关最近, Envoy已成为流行的网络组件。 马特克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线向右移的部分原因。 他称该博客为“通用数据平面API”。…

d3.js和mysql_如何从mysql数据库中提取数据并使用D3.JS进行可视化?

以下是一个php脚本,您应该可以将其保存在某个文件中(假设您称之为“getdata.php”),可以从您的HTML文件中访问,其中包含D3代码.调用时,它将以json格式从MySQL数据库返回数据(只要数据库服务器不在您的域之外);$username "******";$password "******";$ho…

apigee 安装_APIGEE – API网关简介

apigee 安装在本文中,我想简要介绍一下APIGEE。 APIGEE主要提供现成的以下功能作为api网关。 协议转换 与任何协议(包括SOAP,REST,XML二进制或自定义)进行转换 交通管理 开箱即用的灵活,分布式配额管理…

linux mysql 忘记root密码_Linux MySQL忘记root密码解决方案

在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,如何解决?一、更改my.cnf配置文件1、用命令编辑/etc/my.cnf配置文件,即:vim /e…

Java编程中如何获取项目文件的路径/文件路径

// 获取类加载器 ClassLoader cl JDBCUtils.class.getClassLoader(); // 获取文件的统一资源定位器对象 URL url cl.getResource("db_config.properties"); // 获取文件的路径 String path url.getPath();

inmemory_通过Spring Boot了解H2 InMemory数据库

inmemory介绍 基本上,数据库设置涉及几个步骤,然后才能在应用程序中通过已配置的数据源使用它。 在实际项目实施中,这实际上是必需的。 但是,在某些情况下,我们只需要为某件事完成POC,并且整个数据库设置工…

mysql 查询分组平均数_9、mysql分组查询-----group by 和 having

举例说明:有 Store_Information表之前我们根据这个表,用函数可以算出sales的总和,平均数等如果现在我们需要算出每一间店(store_name)的销售总额(sales)呢?比如:1、los angeles 销售额加起来是 18000san diego…