使用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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业电脑主板的图解及功能图(工业电脑主板
- 下一篇: adf可以自定义溶剂吗_ADF Face