1. 在 https://issues.sonatype.org/secure/Signup!default.jspa (其實(shí)類似于本地倉庫nexus莽鸭,只是在上傳maven公共倉庫吗伤,需要經(jīng)過這個(gè)第三方組織的公共倉庫)注冊(cè)賬號(hào),如果已有硫眨,則跳過該步;
2. 如果創(chuàng)建 groupId ,則需要新建一個(gè)工單(Issues)巧号,點(diǎn)擊導(dǎo)航最上面的Create按鈕族奢,然后會(huì)彈出下面的對(duì)話框,將Project=Community Support和Issue Type=new project裂逐,然后根據(jù)Java包的功能分別寫上Summary歹鱼、Description、Group Id卜高、SCM url以及Project URL弥姻、Usernames等必要信息,創(chuàng)建完之后需要等待Sonatype的工作人員審核處理掺涛,審核時(shí)間還是很快的庭敦,我的審核差不多等待了半個(gè)小時(shí)。當(dāng)Issue的Status變?yōu)镽ESOLVED后薪缆,同時(shí)會(huì)收到郵件秧廉,此時(shí)就可以進(jìn)行下一步操作了。
注意:
項(xiàng)目類型是 Community Support - Open Source Project Repository Hosting
groupId 對(duì)應(yīng)的域名拣帽,你需要有所有權(quán)
如果是在已有的 groupId 中提交更新疼电,要么創(chuàng)建人在創(chuàng)建issue時(shí)添加你的用戶名進(jìn)去到他的issue中。要么自己創(chuàng)建issue减拭,按上面步驟蔽豺,并且說明清楚。
3. 使用gpg生成密鑰對(duì)
1)如果使用的是Windows拧粪,可以到https://www.gpg4win.org/download.html下載gpg4win修陡,推薦使用 Gpg4win-Vanilla 2.3.3版本
2)如果使用的是Linux,可以通過yum install gpg命令安裝gpg可霎。
linux下: gpg --gen-key
windows下: gpg –-gen-key
4. 檢查已生成的密鑰列表
gpg --list-keys
第一行是公鑰文件路徑魄鸦,第二行是公鑰信息,第三行是用戶ID癣朗,第四行是私鑰信息拾因。
5. 將公鑰發(fā)布到 PGP 密鑰服務(wù)器
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys B15C5AA3
B15C5AA3 是公鑰信息
6. 查詢公鑰是否發(fā)布成功
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys B15C5AA3
7. 修改Maven配置文件
需要修改全局的setting.xml和項(xiàng)目的pom.xml文件。
setting.xml
找到maven的全局配置文件settings.xml旷余,在里面找到 節(jié)點(diǎn)绢记,這個(gè)節(jié)點(diǎn)默認(rèn)是注釋掉的,增加如下配置:
sonatype-nexus-snapshots
Sonatype網(wǎng)站的賬號(hào)
Sonatype網(wǎng)站的密碼
sonatype-nexus-releases
Sonatype網(wǎng)站的賬號(hào)
Sonatype網(wǎng)站的密碼
上面的username和password就是你在步驟一注冊(cè)的帳號(hào)和密碼荣暮。
pom.xml
org.sonatype.oss
oss-parent
7
并增加Licenses、SCM罩驻、Developers信息等穗酥,在此不貼源碼了。
sonatype-nexus-snapshots
https://oss.sonatype.org/content/repositories/snapshots
sonatype-nexus-releases
https://oss.sonatype.org/service/local/staging/deploy/maven2
此處,snapshotRepository 與 repository 中的 id 一定要與 setting.xml 中 server 的 id 保持一致砾跃。
8. 部署和發(fā)布Jar包
在源碼目錄下骏啰,使用命令方式執(zhí)行:
mvn clean deploy -P sonatype-oss-release
執(zhí)行以上 Maven 命令時(shí),會(huì)提示需要輸入上面提到的 Passphase抽高,它就是剛才設(shè)置的 GPG 密鑰庫的密碼
上述命令執(zhí)行后判耕,Jar包將會(huì)發(fā)布到sonatype的構(gòu)件倉庫中,可以到 https://oss.sonatype.org/#stagingRepositories 查看發(fā)布好的Jar
9. 在 OSS 中翘骂,使用自己的 Sonatype 賬號(hào)登錄后壁熄,可在 Staging Repositories 中查看剛才已上傳的構(gòu)件,這些構(gòu)件目前是放在 Staging 倉庫中碳竟,可進(jìn)行模糊查詢草丧,快速定位到自己的構(gòu)件。此時(shí)莹桅,該構(gòu)件的狀態(tài)為 Open昌执,然后依次點(diǎn)擊上方的Close–>Confirm,在彈出的對(duì)話框中輸入Jar包的描述信息诈泼,這個(gè)信息將會(huì)在Maven搜索結(jié)果當(dāng)作簡介介紹Jar包的懂拾,所以建議輸?shù)脑敿?xì)點(diǎn)。當(dāng)狀態(tài)變成closed后铐达,執(zhí)行Release–>Confirm岖赋,同樣會(huì)彈出一個(gè)類似于上面的對(duì)話框,還是輸入那些介紹信息即可娶桦,當(dāng)這步執(zhí)行完之后贾节,構(gòu)件將會(huì)自動(dòng)刪除。
10. 通知 Sonatype 構(gòu)件已成功發(fā)布
在第2步中創(chuàng)建的Issue下面回復(fù)一條“The component has been successfully released”的評(píng)論衷畦,即通知 Sonatype 的工作人員為需要發(fā)布的構(gòu)件做審批栗涂,發(fā)布后會(huì)關(guān)閉該Issue。
11. 等待構(gòu)件審批通過
審批通過后祈争,將會(huì)收到郵件通知斤程。
12. 從中央倉庫中搜索構(gòu)件
大概2小時(shí)后,可以在Maven中央倉庫搜索到