好記性不如爛筆頭啊,把做完的一件事記下來是個不錯的習慣。這個流程說實話我走過很多次了,但是每次同僚問我怎麼搞的時候,我發現我還是需要去看文檔+谷歌,而且竟然每次都能發現不一樣的方法,當然這些方法的本質是一樣的。
以前還折騰了Gradle上傳到中央倉庫,以及上傳到三方倉庫然後代我轉移到中央倉庫等等等。當初還是懵懵懂懂的就直接用Gradle去上傳,不是不行,按照我的經驗來說還是建議先通過Maven熟悉整個過程懂得原理後再用Gradle也不遲。
經曆這些折騰,我總結出以下目前我認為最友善的經驗。
-
注冊帳号并建立工單(已建立過工單可略過)
網址:issues.sonatype.org/secure/Dashboard.jspa
建立賬号,登入後選擇Create Issue,選擇Community Support - Open Source Project Repository Hosting (OSSRH)以及New Project。
送出完畢後等待從業人員稽核,從業人員會稽核你送出的issue,主要稽核内容為你是否具備這個groupId的所有權。是以個人的開源項目,我推薦groupID為你個人的github位址,如:com.github.username。
-
生成密鑰并上傳
Windows的gpg可以在git的安裝目錄中找到。
# 具體資訊按照自己的需求填寫,密鑰的密碼會在上傳的時候用到
gpg --gen-key
...
...
...
生成密鑰完畢後上傳密鑰
# 列出密鑰
gpg --list-keys
/c/Users/hanzi/.gnupg/pubring.kbx
---------------------------------
pub rsa2048 2018-11-30 [SC]
C4437BA4AE78DC911111117303966D5033970CC
uid [ultimate] ziyuan <[email protected]>
sub rsa2048 2018-11-30 [E]
# 如我的密鑰為C4437BA4AE78DC911111117303966D5033970CC,上傳該密鑰
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys C4437BA4AE78DC911111117303966D5033970CC
-
配置項目的pom.xml
增加以下配置:
<!-->這裡繼承它的原因是它包含了一些必備的配置,如中央倉庫位址、maven-javadoc-plugin插件、maven-gpg-plugin插件等<-->
<!-->注意,如果是多子產品項目,就需要自己配置而不能直接繼承了。可通過mvn clean deploy -pl ***來指定釋出特定的子子產品<-->
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<!-->項目的協定<-->
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>actable</distribution>
</license>
</licenses>
<!-->開發者的資訊<-->
<developers>
<developer>
<name>example</name>
<email>[email protected]</email>
</developer>
</developers>
<!-->項目的版本管理位址<-->
<scm>
<url>https://github.com/Bpazy/Id</url>
</scm>
-
配置Maven(~/.m2/setting.xml)
增加以下配置:
<!-->這裡配置的是sonatype的資訊,上一步中繼承的oss-parent會用到這些資訊<-->
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>上面第一步時注冊的帳号</username>
<password>上面第一步時注冊的密碼</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>上面第一步時注冊的帳号</username>
<password>上面第一步時注冊的密碼</password>
</server>
</servers>
-
上傳
這一步會要求你輸入生成密鑰指定的密碼
mvn clean deploy -P sonatype-oss-release
-
在oss.sonatype.org釋出jar包
點選左側的
滑到最下面,選中剛上傳的一項點選Staging Repositories
,此時網站會檢查剛上傳的jar包是否符合要求,檢查完畢後狀态會變為close
,這時點選closed
,等待約兩小時即可在search.maven.org搜尋到你釋出的jar包。Release
-
更新jar包或上傳新的同groupId下的包
直接第
步即可。5、6