gradle使用maven

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

背景

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

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


改进措施

年末发生了两件事。 首先是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

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

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

    得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠. 背景 如果您仅想获取信息,如何使您的工件从Travis发 ...

  2. central maven_一键发布到Maven Central的方法

    central maven 当我向Maven Central发布Java开源库jcabi-aspects的新版本时,我花了30秒钟的时间. 甚至更少. 最近,我发布了版本0.17.2. 您可以在Git ...

  3. gradle maven_将工件从Gradle自动提升到Maven Central

    gradle maven 快速教程,无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/释放到Maven Central. 介绍 Mav ...

  4. 从Gradle自动将工件提升到Maven Central

    快速教程,无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/发布到Maven Central. 介绍 Maven Central (又 ...

  5. java gradle构建_在Gradle中为JPMS构建Java 6-8库

    java gradle构建 通过提供Java 9 module-info.class了解如何使用Gradle构建支持JPMS( Java平台模块系统 )的Java 6-8库. 介绍 如果您需要JPMS ...

  6. 【转载】解决refreshing gradle project 和Building gradle project info 一直卡住\速度慢

    转载: http://blog.csdn.net/xx326664162/article/details/52002616 文章出自:薛瑄的博客 分析原因: 更改Gradle的版本后,或者更新AS后, ...

  7. Android Gradle 构建工具(Android Gradle Build Tools)是什么?

    转载地址:http://mrfu.me/android/2015/07/17/New_Android_Gradle_Build_Tools/ 译者地址:[翻]一览新的 Android Gradle 构 ...

  8. Android Studio 中的 gradle 介绍及build.gradle配置文件详解

    不同于 Eclispse,Android Studio 是采用 Gradle 来构建项目的,Gradle 是一个非常先进强大的项目构建工具,它使用了一种基于 Groovy 领域的特定语言(DSL)来声 ...

  9. datatable 汇总_【2019 版】中国石油大学(北京)计算机考研信息、资料汇总

    院校简介 中国石油大学(北京)(China University ofPetroleum,Beijing)简称中石大(CUP),创建于1953年,由中华人民共和国教育部直属,位列国家首批"2 ...

最新文章

  1. 数据库:B+树索引和Hash索引得区别
  2. oracle流复制实现,Oracle流复制技术的基本概念、工作流程及其容灾备份
  3. 由于不能随便改路径,所以写在这里
  4. [LibTorch] C++ 调用 PyTorch 导出的模型
  5. layUI 选中表格 checkbox
  6. sketchup ruby编程之绘制梯段
  7. python面向对象:小结
  8. 6.微服务:从设计到部署 --- 选择部署策略
  9. 计算机网络基础应用课程标准,王建波《计算机网络基础》课程标准.doc
  10. 【VS开发】【电子电路技术】VPX技术介绍
  11. 你所不知道的互联网那些职业-技术岗
  12. qq登录界面句柄_天天玩QQ!知道登录界面那两个人是谁吗?网友:不是情侣?...
  13. win7 install solution for intel SKL and BSW platform
  14. 操作系统的基本特征、区别及功能
  15. 【同一电脑原win用户信息迁移到新Win用户下python interpreter显示 no interpreter问题】
  16. latex论文排版初级应用
  17. java面试题(一)Java面试问题集
  18. Prometheus时序数据库-磁盘中的存储结构
  19. 怎么给PDF文件添加页码
  20. Unity3D导航系统中物体无法移动

热门文章

  1. 牛客题霸 [括号序列] C++题解/答案
  2. Fake Maxpooling(2020多校第二场F)
  3. YbtOJ#20237-[冲刺NOIP2020模拟赛Day10]区间均值【树状数组】
  4. P3723-[AH2017/HNOI2017]礼物【FFT】
  5. nssl1477-赛【对顶堆,贪心】
  6. P4343-[SHOI2015]自动刷题机【二分答案】
  7. nssl1317-灵魂分流药剂【分组背包,二维费用背包】
  8. ssl提高组周六备考赛【2018.10.20】
  9. jzoj3384-理工男【欧拉定理,gcd,数论】
  10. jzoj1371-假期【RMQ】