gradle maven

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

介绍

Maven Central (又名“中央存储库”)是(可能是)全球最大的一组开源工件,供Java和基于JVM的项目使用。 它是由Apache Maven的创建者创建的,自2002年以来一直在提供工件。如今,有一些替代方法(在下面列出),但是对于许多用户而言,Maven Central仍然是项目依赖项的主要来源(有时是唯一被列入白名单的项目)。公司)。

问题

要执行发布到中央存储库的操作,Maven用户可以使用Nexus Staging Maven插件 -免费但不是完全开源的插件。 但是使用Gradle时,需要登录Nexus GUI并手动调用两个操作(关闭存储库和发布/升级存储库)。 连续交付方法非常无聊,而且存在很多问题。 幸运的是Nexus公开了REST API,通过做一些工作就可以做到这一点。 Gradle Nexus Staging插件应运而生。

快速开始

重要的 。 请注意,先决条件是在Sonatype OSSRH(OSS存储库托管)中具有活动帐户并已配置该帐户,并且Gradle项目配置为将发布工件发布到登台存储库中。 如果还没有的话,请遵循官方指南中 Gradle的单独章节 。

要在项目中设置自动发布/促销,请将gradle-nexus-staging-plugin添加到根项目的build.gradle文件中的buildscript依赖项中:

buildscript {repositories {mavenCentral()}dependencies {classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.1"}
}

应用插件:

apply plugin: 'io.codearte.nexus-staging'

配置它:

nexusStaging {packageGroup = "org.mycompany.myproject"stagingProfileId = "yourStagingProfileId" //when not defined will be got from server using "packageGroup"
}

在成功将档案上传(使用mavenmaven-publishnexus插件)后,调用Sonatype OSSRH:

./gradlew closeRepository promoteRepository

关闭登台存储库并升级/发布它及其工件。 如果启用了与Maven Central的同步,则工件应在几分钟内自动出现在Maven Central中。

细节

该插件提供了两个主要任务:

  • closeRepository –使用上载的工件关闭打开的存储库。 登台配置文件中应该只有一个开放的存储库(可以使用Nexus GUI删除可能的旧/损坏的存储库)
  • promoteRepositorypromoteRepository /发布封闭的存储库(需要将工件放到Maven Central中)

还有一个:

  • getStagingProfile –获取并显示给定软件包组的暂存配置文件ID。 这是一个获取值并将其作为stagingProfileId放入配置闭包的诊断任务。 要查看结果,需要使用--info开关调用gradle。

必须提到的是,调用Nexus REST API会立即结束,但是关闭操作会花费一些时间,因此,可以使用内置的重试机制一起调用closeRepository promoteRepository

该插件“与上传机制无关”,可以与mavenmaven-pluginnexus插件一起使用。

有关更多详细信息和配置参数,请参阅项目网页或插件自己的发行版配置中的工作示例。

Maven Central的替代品?

它是更年轻,但很有前途的替代品-Bintray ,它也可以用于人工制品。 它对开源项目是免费的,我个人曾将其用于其他项目 ,甚至为Bintray,Travis和Gradle创建了自动发布机制 。 它可以正常工作,但要将工件也放到Maven Central中,则需要在服务器上存储用于唱歌的私钥,并提供Nexus凭据。 这会增加被盗的风险,在Codearte中,我们更喜欢使用私有Jenkins实例直接将其发布到Maven Central。

摘要

使用Gradle Nexus暂存插件 ,可以使用Gradle从命令行执行向Maven Central的整个发行过程,并且通过CI服务器可以完全自动执行一些其他工作。 没有更多按钮可推送Nexus GUI。 除了Sonatype OSSRH外,该插件还可以与具有启用的登台存储库的私有Nexus实例一起使用。

顺便说一句,插件中可能有很多可以增强的地方。 如果您需要某些东西或发现了错误,请随时使用问题跟踪器进行报告。

感谢KubaKubryński的努力和帮助,他们分析了记录不充分的Nexus REST API。

翻译自: https://www.javacodegeeks.com/2015/03/automatic-promotion-of-artifacts-to-maven-central-from-gradle.html

gradle maven

gradle maven_将工件从Gradle自动提升到Maven Central相关推荐

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

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

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

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

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

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

  4. [Gradle] 在 Eclipse 下利用 gradle 构建系统

    构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还是需要时间的.本文将向读者介绍一种全新的构建项目的方式 gradle,它简单.上手快,能大大节省项目的时间 ...

  5. gradle项目 构建_使用Gradle构建Monorepo项目

    gradle项目 构建 根据Wikipedia的说法 , monorepo是一种软件开发策略,其中许多项目存储在同一资源库中. 这种策略可以快速检测到因依赖关系的更改而导致的潜在问题和破坏,并且已被许 ...

  6. 彻底解决gradle与gradle plugin匹配关系以及gradle下载缓慢的问题

    文章目录 问题引入 原因 解决方法 1. 检查gradle版本和gradle插件版本是否匹配 2. 解决gradle下载慢的问题 手动下载gradle包 替换依赖仓库 方法一:在build.gradl ...

  7. intellij gradle java_Java 使用 IntelliJ IDEA Gradle创建新项目报错问题解决方法

    1、JDK10的解决方法 对于JDK 10,您将需要Gradle 4.7+,默认情况下IntelliJ IDEA(当前版本IntelliJ IDEA 2018.1.4)不使用. 要解决此问题,请为您的 ...

  8. java表达式类型自动提升

    [一道经典的Java面试题] short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 答案是:前者错,后者对.相信不管是否经历过java ...

  9. Gradle修改缓存路径 和 Gradle修改Maven仓库地址

    Gradle修改缓存路径 修改gradle启动脚本进入gradle安装的bin目录,使用文本编辑器打开gradle.bat文件,在如图的位置添加以下语句 set GRADLE_OPTS="- ...

最新文章

  1. 归并排序是稳定的排序
  2. python中x y表示_Python中表达式x += y和x = x+y 的区别详解
  3. os:进程与线程问题
  4. 调整weblogic内存的分配和使用
  5. html js什么作用,html錨點的作用和js選項卡錨點跳轉的使用
  6. 用计算机算出陈赫手机号码,陈赫手机号码遭《快本》曝光,并被网友打到关机!还有人搜到了他的支付宝账户......
  7. 超棒!纯Rust编写的机器学习框架,速度堪比PyTorch
  8. asp.net hessian + android hessdroid
  9. python装饰器详解-Python 函数装饰器
  10. 微信小程序中识别html标签的方法
  11. Python3之logging模块
  12. 【Web笔记】Html学习手册
  13. 团队开发过程中的一点感想
  14. Chrome网页下载提速小技巧
  15. hdu 5145 NPY and girls (莫队算法)
  16. python用matplotlib画玫瑰_用Python matplotlib 怎么画风向玫瑰图 ,能给出程序的?
  17. JAVA-打印星号三角形
  18. 网页的首屏标准你了解多少?
  19. 关于程序设计中的框架结构
  20. wxFormBuilder + wxPython 工具开发第二章-日记本工具数据连接与展示

热门文章

  1. jzoj5097-[GDOI2017day1]取石子游戏【并查集,LCA】
  2. [2020.11.3NOIP模拟赛]选数字【容斥】
  3. P4552-[Poetize6]IncDec Sequence【差分】
  4. 2021牛客暑期多校训练营4 B-Sample Game(概率DP)
  5. 【AC自动机】前缀匹配(ybtoj AC自动机-3)
  6. MySQL - InnoDB特性 - Buffer Pool漫谈
  7. 公众号一年能有多少收入?
  8. 《金色梦乡》金句摘抄(十一)
  9. PL/SQL编程基本概念
  10. java实现打印倒直角三角形