日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Gradle – 2019版从Travis可靠发布到Maven Central 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

得益于在2018年和2019年末實(shí)現(xiàn)的顯式登臺(tái)存儲(chǔ)庫創(chuàng)建功能集,使您(自動(dòng))從Travis(不僅是)發(fā)布到Maven Central更加可靠。

背景

如果您僅想獲取信息,如何使您的工件從Travis發(fā)布更可靠,請(qǐng)前進(jìn)到另一部分。

從Gradle到Maven Central的自動(dòng)工件發(fā)布(使用暫存庫及其升級(jí))一直很棘手。 與這些操作相關(guān)的Nexus REST API的文檔非常少。 另外,即使已經(jīng)顯式創(chuàng)建了Gradle,它本身也不支持將工件上傳到專用的暫存庫。 結(jié)果,必須使用啟發(fā)式方法來確定哪個(gè)存儲(chǔ)庫僅包含上載的工件,這帶來了一些嚴(yán)重的局限性。 問題的根源是Travis在2018年秋末將其架構(gòu)更改為更加無狀態(tài)。這導(dǎo)致對(duì)特定工件的上載請(qǐng)求通過具有不同 IP地址的機(jī)器進(jìn)行路由,從而導(dǎo)致為單個(gè)數(shù)據(jù)庫創(chuàng)建多個(gè)陳述式存儲(chǔ)庫gradle uploadArchives或gradle publish調(diào)用。 這使得Travis的Gradle自動(dòng)釋放偽像的工作徹底中斷了。 直至現(xiàn)在。

改進(jìn)措施

年末發(fā)生了兩件事。 首先是Marc Philipp 發(fā)布的新的nexus-publish插件。 它使用Nexus API創(chuàng)建了一個(gè)明確的登臺(tái)存儲(chǔ)庫,并增強(qiáng)了Gradle發(fā)布任務(wù)以使用該存儲(chǔ)庫。 第二件事是對(duì)我的gradle-nexus-staging插件進(jìn)行了增強(qiáng),該插件開始允許設(shè)置發(fā)布操作期間應(yīng)使用的登臺(tái)存儲(chǔ)庫ID。 從而提高了使用Gradle發(fā)布到Maven Central的可靠性。

無需依靠啟發(fā)式方法確定應(yīng)使用哪個(gè)存儲(chǔ)庫進(jìn)行發(fā)布,而是顯式創(chuàng)建了新的登臺(tái)存儲(chǔ)庫。 工件直接上傳到它,它已關(guān)閉并釋放。 因此,一切都變得更加流暢,并且更加防錯(cuò)。 此外,并行發(fā)布屬于同一暫存配置文件的不同項(xiàng)目沒有問題,并且最終可以與Travis再次正常使用。

組態(tài)

這篇文章假設(shè)您已經(jīng)配置了使用maven-publish插件將工件上傳到Maven Central(又名The Central Repository)。 如果沒有,您可以查閱此鏈接 。 此配置將使您的部署和發(fā)布更加可靠,而無需在Nexus UI中進(jìn)行任何手動(dòng)操作。

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 }

您期望編寫更多代碼(配置)嗎? 一切都隱藏在相互利用的插件中。 請(qǐng)記住使用nexus-staging 0.20.0+和nexus-publish 0.2.0+。

之后,發(fā)布和發(fā)布工件就只需一個(gè)命令:

. /gradlew publishToNexus closeAndReleaseRepository

不是publish ,而是使用publishToNexus任務(wù),該任務(wù)用于設(shè)置登臺(tái)存儲(chǔ)庫ID和closeAndReleaseRepository ,用于關(guān)閉和釋放該特定存儲(chǔ)庫。 幾分鐘后,您的工件應(yīng)在Maven Central中可用。

重要的 。 請(qǐng)記住,必須在一個(gè)Gradle執(zhí)行中使用publishToNexus和closeAndReleaseRepository才能利用顯式創(chuàng)建的登臺(tái)存儲(chǔ)庫。

摘要

Gradle是一個(gè)非常不錯(cuò)的構(gòu)建工具,(幾乎)天空是極限。 不幸的是,仍然存在一些長(zhǎng)期存在的問題,需要使用一些技巧或編寫自定義插件來克服它們。 有希望的是,隨著每個(gè)發(fā)行版的發(fā)布,它們都將被緩慢地修復(fù)/ 實(shí)施 。 為了解決該特定問題,需要進(jìn)行自下而上的工作以將Travis的釋放恢復(fù)正常,并且更可靠。

請(qǐng)注意 。 提出的方法非常適合使用(最近改進(jìn)的)發(fā)布插件。 如果您仍然使用舊的maven插件(具有uploadArchives任務(wù)而不是publish任務(wù)),則需要遷移和/或在相應(yīng)的問題中添加評(píng)論。

翻譯自: https://www.javacodegeeks.com/2019/02/releasing-maven-central-travis-gradle.html

總結(jié)

以上是生活随笔為你收集整理的使用Gradle – 2019版从Travis可靠发布到Maven Central的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。