將項(xiàng)目上傳到Maven中央倉庫(2023最新版)
官方文檔:https://central.sonatype.org/publish/publish-maven/#a-complete-example-pom
整體流程
- 注冊(cè) Jira Software
- 新建問題
- 完成域名所有權(quán)的驗(yàn)證
- 配置 gpg 密鑰
- 配置 setting.xml
- 配置 pom.xml
- 上傳
具體操作
注冊(cè) Jira Software :https://issues.sonatype.org/secure/Signup!default.jspa
新建申請(qǐng)
- 前兩個(gè)默認(rèn)值沒有必要改動(dòng)
- Group Id 填域名或 io.github.用戶名(后續(xù)驗(yàn)證會(huì)驗(yàn)證域名或 GitHub 賬號(hào)的所有權(quán))
- Project URL 和 SCM url 按照實(shí)例填
- Username(s) 指能夠向這個(gè) Group Id 發(fā)包的 jira 用戶
查看新建的申請(qǐng)并等待審核(一般5-10分鐘)
然后官方的機(jī)器人會(huì)給一個(gè)評(píng)論讓我們完成驗(yàn)證
根據(jù)評(píng)論的提示,如果我們的 Group Id 是域名,則需要給域名添加一條解析記錄;如果是 GitHub 的話,則需要?jiǎng)?chuàng)建一個(gè)新的倉庫來完成驗(yàn)證;做完之后將問題調(diào)整為開放狀態(tài)等待審核(因?yàn)槲疫@里是已經(jīng)完成了,所以是已解決狀態(tài))
審核成功之后會(huì)有如下評(píng)論
下載 GPG 工具,在命令行執(zhí)行 gpg --gen-key** **命令,按照指示生成密鑰對(duì)。gpg --list-keys 命令可以查看已生成的密鑰對(duì)。通過 gpg --keyserver keyserver.ubuntu.com --send-keys 公鑰 命令將密鑰對(duì)發(fā)到服務(wù)器,供后面驗(yàn)證使用
配置 Maven 的 setting.xml 文件。在 servers 里添加一個(gè) server 塊,內(nèi)容如下:
<server> <id>ossrh</id> <username>jira 賬號(hào)</username> <password>jira 密碼</password> </server>
配置項(xiàng)目的 pom.xml 文件,這里主要是添加了一些插件,測(cè)試通過的示例 pom 文件如下。注意:包的 GAV 坐標(biāo)里的 groupId 一定要跟上面在 jira 申請(qǐng)問題時(shí)填寫的 Group Id 保持一致,否則無法上傳成功
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!-- 包信息根據(jù)實(shí)際填寫,groupId 一定要跟上面在 jira 申請(qǐng)問題時(shí)填寫的 Group Id 保持一致,否則無法上傳成功 --> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <name>...</name> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> </properties> <dependencies> ... </dependencies> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.7</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> <stagingProgressTimeoutMinutes>20</stagingProgressTimeoutMinutes> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <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> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <additionalOptions> <additionalOption>-Xdoclint:none</additionalOption> </additionalOptions> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <!-- 后面是開發(fā)者及項(xiàng)目信息,根據(jù)實(shí)際填寫 --> <licenses> <license> <name>BSD 3-Clause</name> <url>https://spdx.org/licenses/BSD-3-Clause.html</url> </license> </licenses> <scm> <connection>...</connection> <url>...</url> </scm> <developers> <developer> <name>...</name> <email>...</email> <roles> <role>Developer</role> </roles> <timezone>+8</timezone> </developer> </developers> </project>
上傳包
構(gòu)建成功之后可以先查一下是否發(fā)布成功(用 jira 賬號(hào)登錄):https://s01.oss.sonatype.org/#welcome
成功之后在 jira 創(chuàng)建的問題里會(huì)有評(píng)論(會(huì)有一定延遲),如下圖:
到這里就完成了,接下來等著其他各大倉庫自動(dòng)同步(網(wǎng)上說4h,但我實(shí)際測(cè)試用了接近7h)就可以了。Maven 中央倉庫首先可以查到(這個(gè)很快,半小時(shí)內(nèi)就可以查到了),然后是我們熟知的mvnrepository.com/和其他倉庫
到此這篇關(guān)于將項(xiàng)目上傳到Maven中央倉庫(2023最新版)的文章就介紹到這了,更多相關(guān)項(xiàng)目上傳到Maven中央倉庫 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java對(duì)象深復(fù)制與淺復(fù)制實(shí)例詳解
這篇文章主要介紹了 Java對(duì)象深復(fù)制與淺復(fù)制實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05java模擬ajax訪問另一個(gè)項(xiàng)目的controller代碼實(shí)例
今天小編就為大家分享一篇關(guān)于java模擬ajax訪問另一個(gè)項(xiàng)目的controller代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03MyBatis的collection和association的使用解讀
這篇文章主要介紹了MyBatis的collection和association的使用解讀2023-12-12MyBatis動(dòng)態(tài)sql查詢及多參數(shù)查詢方式
這篇文章主要介紹了MyBatis動(dòng)態(tài)sql查詢及多參數(shù)查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10SpringBoot application.yml和bootstrap.yml的區(qū)別
本文主要介紹了SpringBoot application.yml和bootstrap.yml的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)兩張圖片2D翻轉(zhuǎn)動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08Java實(shí)現(xiàn)Swing組件定制Button示例
這篇文章主要介紹了Java實(shí)現(xiàn)Swing組件定制Button,涉及java Swing組件Button相關(guān)屬性設(shè)置與使用操作技巧,需要的朋友可以參考下2018-01-01Android中比較常見的Java super關(guān)鍵字
這篇文章主要為大家介紹了Android中比較常見的Java super關(guān)鍵字,具有一定的學(xué)習(xí)參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01JAVA8發(fā)送帶有Body的HTTP GET請(qǐng)求
本文主要介紹了JAVA8發(fā)送帶有Body的HTTP GET請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06關(guān)于服務(wù)網(wǎng)關(guān)Spring Cloud Zuul(Finchley版本)
這篇文章主要介紹了關(guān)于服務(wù)網(wǎng)關(guān)Spring Cloud Zuul(Finchley版本),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03