gradle maven_将工件从Gradle自动提升到Maven Central
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" }在成功將檔案上傳(使用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
總結
以上是生活随笔為你收集整理的gradle maven_将工件从Gradle自动提升到Maven Central的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对外支付备案作废(支付备案作废)
- 下一篇: jax-ws和jax-rs_使用JAX-