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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从Gradle自动将工件提升到Maven Central 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快速教程,無需在帶有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" }

在成功將檔案上傳(使用maven , maven-publish或nexus插件)后,調用Sonatype OSSRH:

./gradlew closeRepository promoteRepository

關閉登臺存儲庫并升級/發布它及其工件。 如果啟用了與Maven Central的同步,則工件應在幾分鐘內自動出現在Maven Central中。

細節

該插件提供了兩個主要任務:

  • closeRepository –使用上載的工件關閉打開的存儲庫。 暫存配置文件中應該只有一個開放的存儲庫(可以使用Nexus GUI刪除可能的舊/損壞的存儲庫)
  • promoteRepository – promoteRepository /發布封閉的存儲庫(需要將工件放到Maven Central中)

還有一個:

  • getStagingProfile –獲取并顯示給定軟件包組的暫存配置文件ID。 這是一個獲取值并將其作為stagingProfileId放入配置閉包的診斷任務。 要查看結果,需要使用--info開關調用gradle。

必須提到的是,調用Nexus REST API會立即結束,但是關閉操作會花費一些時間,因此,可以使用內置的重試機制一起調用closeRepository promoteRepository 。

該插件“與上傳機制無關”,可以與maven , maven-plugin或nexus插件一起使用。

有關更多詳細信息和配置參數,請參閱項目網頁或插件自己的發行版配置中的工作示例。

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 Central的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。