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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

一键发布到Maven Central的方法

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一键发布到Maven Central的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當我向Maven Central發布Java開源庫jcabi-aspects的新版本時,我花費了30秒鐘的時間。 甚至更少。 最近,我發布了0.17.2版本。 您可以在Github第80期中看到所有情況:




如您所見,我向Rultor發出了命令,它向Maven Central發布了一個新版本。 我什么也沒做

現在,讓我們看看如何做到這一點。 如何配置項目,以便將新版本發布到Maven Central只需花費幾秒鐘的時間。

順便說一句,我假設您正在Github中托管項目。 如果沒有,整個教程將無法正常工作。 如果您仍然不在Github中,我強烈建議您搬到那里。

準備您的POM

確保pom.xml包含Sonatype所需的所有元素,如Central Sync Requirements中所述 。 我們將部署到Sonatype,他們會將所有JAR(不僅是)工件同步到Maven Central。

使用Sonatype注冊項目

在Sonatype JIRA中創建一個帳戶并提出票證,要求批準您的groupId。 《 OSSRH指南》更詳細地說明了此步驟。

創建和分發GPG密鑰

創建GPG密鑰并分發它,如本使用PGP簽名文章中所述。

完成此步驟后,您應該有兩個文件: pubring.gpg和secring.gpg 。

創建settings.xml

在上一步中創建的兩個.gpg文件旁邊創建settings.xml :

<settings><profiles><profile><id>foo</id> <!-- give it the name of your project --><properties><gpg.homedir>/home/r</gpg.homedir><gpg.keyname>9A105525</gpg.keyname><gpg.passphrase>my-secret</gpg.passphrase></properties></profile></profiles><servers><server><id>sonatype</id><username><!-- Sonatype JIRA user name --></username><password><!-- Sonatype JIRA pwd --></password></server></servers> </settings>

在此示例中, 9A105525是您的公共密鑰的ID,而my-secret是您在生成密鑰時使用的密碼。

加密安全資產

現在,使用Rultor公鑰( 9AF0FA4C )對這三個文件進行加密:

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 9AF0FA4C gpg --trust-model always -a -e -r 9AF0FA4C pubring.gpg gpg --trust-model always -a -e -r 9AF0FA4C secring.gpg gpg --trust-model always -a -e -r 9AF0FA4C settings.xml

您將獲得三個新文件: pubring.gpg.asc , secring.gpg.asc和settings.xml.asc 。 將它們添加到項目的根目錄,然后提交并推送。 這些文件包含您的機密信息,但是只有Rultor服務器可以解密它們。

添加Sonatype存儲庫

我建議使用jcabi-parent作為您項目的父pom。 這將使許多其他步驟變得不必要。 如果您使用的是jcabi-parent,請跳過此步驟。

但是,如果您不使用jcabi-parent,則應將這兩個存儲庫添加到pom.xml :

<project>[...]<distributionManagement><repository><id>oss.sonatype.org</id><url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url></repository><snapshotRepository><id>oss.sonatype.org</id><url>https://oss.sonatype.org/content/repositories/snapshots</url></snapshotRepository></distributionManagement> </project>

配置GPG插件

同樣,我建議使用http://parent.jcabi.com,它會自動配置此插件。 如果您正在使用它,請跳過此步驟。

否則,將此插件添加到您的pom.xml :

<project>[..]<build>[..]<plugins>[..]<plugin><artifactId>maven-gpg-plugin</artifactId><version>1.5</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin></plugins></build> </project>

配置版本插件

再一次,我建議使用http://parent.jcabi.com。 它可立即配置所有必需的插件。 如果您正在使用它,請跳過此步驟。

否則,將此插件添加到您的pom.xml :

<project>[..]<build>[..]<plugins>[..]<plugin><groupId>org.codehaus.mojo</groupId><artifactId>versions-maven-plugin</artifactId><version>2.1</version><configuration><generateBackupPoms>false</generateBackupPoms></configuration></plugin></plugins></build> </project>

配置Sonatype插件

是的,您是對的,http://parent.jcabi.com也會在這里為您提供幫助。 如果您正在使用它,也請跳過此步驟。

否則,將這四個插件添加到您的pom.xml :

<project>[..]<build>[..]<plugins>[..]<plugin><artifactId>maven-deploy-plugin</artifactId><configuration><skip>true</skip></configuration></plugin><plugin><artifactId>maven-source-plugin</artifactId><executions><execution><id>package-sources</id><goals><goal>jar</goal></goals></execution></executions></plugin><plugin><artifactId>maven-javadoc-plugin</artifactId><executions><execution><id>package-javadoc</id><phase>package</phase><goals><goal>jar</goal></goals></execution></executions></plugin><plugin><groupId>org.sonatype.plugins</groupId><artifactId>nexus-staging-maven-plugin</artifactId><version>1.6</version><extensions>true</extensions><configuration><serverId>oss.sonatype.org</serverId><nexusUrl>https://oss.sonatype.org/</nexusUrl><description>${project.version}</description></configuration><executions><execution><id>deploy-to-sonatype</id><phase>deploy</phase><goals><goal>deploy</goal><goal>release</goal></goals></execution></executions></plugin></plugins></build> </project>

創建Rultor配置

在項目的根目錄中創建一個.rultor.yml文件( 參考頁詳細介紹了此格式):

decrypt:settings.xml: "repo/settings.xml.asc"pubring.gpg: "repo/pubring.gpg.asc"secring.gpg: "repo/secring.gpg.asc" release:script: |mvn versions:set "-DnewVersion=${tag}"git commit -am "${tag}"mvn clean deploy --settings /home/r/settings.xml

您可以將文件與jcabi-aspects的實時Rultor 配置進行比較 。

運行!


現在是時候看看它們如何工作了。 在Github問題跟蹤器中創建一個新票證,并將類似的內容發布到其中(閱讀有關Rultor命令的更多信息):

@rultor release, tag is `0.1`

您將在幾秒鐘內收到答復。 其余的將由Rultor完成。

請享用!

順便說一句,如果我無法解釋某些問題 ,請毫不猶豫地向Rultor問題跟蹤器提交票證。 我會盡力幫助您。

是的,忘記了,Rultor還在做兩項重要的事情。 首先,它會創建一個帶有適當描述的Github版本。 其次,它發布有關該版本的推文,您可以轉發該推文,以向關注者發布公告。 這兩個功能對我來說都很方便。 例如:

DynamoDB Local Maven插件,0.7.1已發布https://t.co/C3KULouuKS

— rultor.com(@rultors) 2014年8月19日

相關文章

您可能還會發現以下有趣的帖子:

  • 一鍵式部署到CloudBees
  • 部署腳本與Rultor
  • 一鍵式發布到Rubygems的方法
  • 魯托爾+特拉維斯
  • 每個構建都在自己的Docker容器中

翻譯自: https://www.javacodegeeks.com/2014/09/how-to-release-to-maven-central-in-one-click.html

總結

以上是生活随笔為你收集整理的一键发布到Maven Central的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩在线观看免费网站 | 国产福利视频导航 | 天天狠天天插天天透 | 国产妞干网 | 日韩不卡视频在线观看 | 天天弄| 中文字幕9 | caoporn视频在线 | 青青草色视频 | 一本色道久久亚洲综合精品蜜桃 | 久久一精品 | 黄黄的网站 | 性做爰视频免费播放大全 | 欧美人伦| 奇米四色7777 | 日韩一级中文字幕 | 国产探花精品在线 | 在线观看日韩av电影 | 色偷偷噜噜噜亚洲男人 | 国产999精品 | 婷婷二区 | 日韩视频免费在线观看 | 亚洲成人黄色影院 | 久久99久久99精品中文字幕 | 免费av网页 | 久久亚洲av成人无码国产电影 | 女警白嫩翘臀呻吟迎合 | 免费看黄色aaaaaa 片 | 在线电影一区二区三区 | 性猛交富婆╳xxx乱大交天津 | 三级性视频 | 日日燥夜夜燥 | 性猛交富婆╳xxx乱大交天津 | 久久久久九九九九 | 成人中文字幕+乱码+中文字幕 | 成人久久网站 | 激情视频在线观看免费 | 五月天激情影院 | 欧美精品一区二区三区久久 | 亚洲最大免费视频 | 欧美毛茸茸 | 国产激情在线视频 | 先锋影音av资源网站 | 日韩极品一区 | 成人影视在线播放 | 日本成人在线不卡 | 情涩快播 | 日本视频免费在线 | 男人用嘴添女人下身免费视频 | 国产成年人免费视频 | 无码一区二区三区免费视频 | 五月花婷婷 | 超碰在线国产97 | 性欧美hd调教 | 国产精品久久久久久久天堂 | 美女在线播放 | 色综合天天综合网天天看片 | 国产卡一卡二 | 午夜在线观看av | 天天干夜夜看 | 狼干综合 | 婷婷成人综合网 | 日日骚视频 | 国产精品视频免费网站 | 激情五月在线观看 | av在线播放不卡 | 日韩亚洲国产欧美 | 日韩亚洲影院 | 日韩人妻一区 | 色在线视频观看 | 久久久久亚洲精品 | 日韩片在线观看 | 日本免费在线视频观看 | 国产色在线,com | 毛片a级片| 亚洲丝袜av | 不卡的一区二区 | 色婷婷欧美 | 蜜臀久久 | 欧美美女视频 | 日韩综合色 | 国产古装艳史毛片hd | 免费在线视频一区 | 伊人久久精品视频 | 国产麻豆一精品一男同 | 一区二区三区韩国 | 痴女扩张宫交脱垂重口小说 | 欧美性激情 | 亚洲欧美精品午睡沙发 | 国产精品成人99一区无码 | 中文字幕手机在线视频 | 香蕉依人 | 一区二区毛片 | 超碰按摩 | 欧美性受黑人性爽 | 野外一级片| 亚洲成人h | 日本高清视频一区二区 | 朝鲜黄色片|