天天看點

上傳jar包到Maven中央倉庫

好記性不如爛筆頭啊,把做完的一件事記下來是個不錯的習慣。這個流程說實話我走過很多次了,但是每次同僚問我怎麼搞的時候,我發現我還是需要去看文檔+谷歌,而且竟然每次都能發現不一樣的方法,當然這些方法的本質是一樣的。

以前還折騰了Gradle上傳到中央倉庫,以及上傳到三方倉庫然後代我轉移到中央倉庫等等等。當初還是懵懵懂懂的就直接用Gradle去上傳,不是不行,按照我的經驗來說還是建議先通過Maven熟悉整個過程懂得原理後再用Gradle也不遲。

經曆這些折騰,我總結出以下目前我認為最友善的經驗。

  1. 注冊帳号并建立工單(已建立過工單可略過)

    網址: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。

  2. 生成密鑰并上傳

    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
           
  1. 配置項目的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>
           
  1. 配置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>
           
  1. 上傳

    這一步會要求你輸入生成密鑰指定的密碼

mvn clean deploy -P sonatype-oss-release
           
  1. 在oss.sonatype.org釋出jar包

    點選左側的

    Staging Repositories

    滑到最下面,選中剛上傳的一項點選

    close

    ,此時網站會檢查剛上傳的jar包是否符合要求,檢查完畢後狀态會變為

    closed

    ,這時點選

    Release

    ,等待約兩小時即可在search.maven.org搜尋到你釋出的jar包。
  2. 更新jar包或上傳新的同groupId下的包

    直接第

    5、6

    步即可。