使用Gradle – 2019版从Travis可靠发布到Maven Central
得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠。
背景
如果您仅想获取信息,如何使您的工件从Travis发布更可靠,请前进到另一部分。
从Gradle到Maven Central的自动工件发布(使用暂存库及其升级)一直很棘手。 与这些操作相关的Nexus REST API的文档非常少。 另外,即使已经显式创建了Gradle,它本身也不支持将工件上传到专用的暂存库。 结果,必须使用启发式方法来确定哪个存储库仅包含上载的工件,这带来了一些严重的局限性。 问题的根源是Travis在2018年秋末将其架构更改为更加无状态。这导致对特定工件的上载请求通过具有不同 IP地址的机器进行路由,从而导致为单个数据库创建多个陈述式存储库gradle uploadArchives
或gradle 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执行中使用publishToNexus
和closeAndReleaseRepository
才能利用显式创建的登台存储库。
摘要
Gradle是一个非常不错的构建工具,(几乎)天空是极限。 不幸的是,仍然存在一些长期存在的问题,需要使用一些技巧或编写自定义插件来克服它们。 有希望的是,随着每个发行版的发布,它们都将被缓慢地修复/ 实施 。 为了解决该特定问题,需要进行自下而上的工作以将Travis的释放恢复正常,并且更可靠。
请注意 。 提出的方法非常适合使用(最近改进的)发布插件。 如果您仍然使用旧的maven
插件(具有uploadArchives
任务而不是publish
任务),则需要迁移和/或在相应的问题中添加评论。
翻译自: https://www.javacodegeeks.com/2019/02/releasing-maven-central-travis-gradle.html
使用Gradle – 2019版从Travis可靠发布到Maven Central相关推荐
- gradle使用maven_使用Gradle – 2019版从Travis可靠发布到Maven Central
gradle使用maven 得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠. 背景 如果您仅想获取有关如何 ...
- 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期中看到所有情 ...
- 从Gradle自动将工件提升到Maven Central
快速教程,无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/发布到Maven Central. 介绍 Maven Central (又 ...
- gradle maven_将工件从Gradle自动提升到Maven Central
gradle maven 快速教程,无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/释放到Maven Central. 介绍 Mav ...
- linux2019内核版本发布,新兴的桌面发行版 Septor Linux 发布 2019 版
原标题:新兴的桌面发行版 Septor Linux 发布 2019 版 Septor Linux 是一个新兴的桌面 GNU/Linux 发行版,基于 Debian "Testing" ...
- OpenPose 2019版总结
OpenPose 2019版总结 论文时间 30 May 2019 OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affi ...
- 《工业大数据白皮书》2019版正式发布
来源:悟空智能科技 近日,由中国电子技术标准化研究院.全国信息技术标准化技术委员会大数据标准工作组主编,工业大数据产业应用联盟联合主编,联想集团等多家联盟成员企业参编的<工业大数据白皮书(201 ...
- 中文课程!台大李宏毅机器学习公开课2019版上线
授权转载自机器之心, 未经许可禁止二次转载 台大教授李宏毅的机器学习课程经常被认为是中文开放课程中的首选.李教授的授课风格风趣幽默,通俗易懂,其课程内容中不仅有机器学习.深度学习的基础知识,也会介绍 ...
最新文章
- 协方差及PCA降维计算
- MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因...
- RTMP协议从入门到放弃
- Caffe2:段错误(核心 已转储)
- sublime text 3 3103 注册码
- 广义表取表头表尾_数据结构广义表的递归算法
- at.allow与at.deny及cron.allow与cron.deny优先级的比较
- linux视频教程百度网盘分享
- java word搜索_java 实现word 文档的在线编辑. 以及全文关键字搜索和高亮显示
- MVC和MVVM框架模式
- 什么是503服务不可用错误(以及如何解决)?
- 德军总部2新巨人计算机丢失,德军总部2新巨人打不开怎么办 德军总部2新巨像进不去解决方法...
- windows下VS中各种C++库的集成
- 收藏的一些前端酷炫网站
- flask爱家租房项目开发(一)
- 最完整的磁性材料行业现状及发展前景分析,长文预警
- 看图写英语作文关于计算机,看图说话 英语作文图片上是一个小女孩看着电脑发呆,要求120字~...
- 粒子群算法Fortran代码(OMP并行)
- canvas——往下跳小游戏
- CVTE 2021 春招面经