快速發佈自定義JAR到Maven中央倉庫(Linux操作系統下圖文版)

如題,本文將介紹如何在Linux環境下快速地將本地的JAR包發佈至Maven中央倉庫,分享給其他的開發者使用。其他操作系統下的操作過程大致相同(MacOS和Windows下的GPG只是安裝的文件略微有差異)。


首先,假定你在本地機器上已經完成了基於Maven的軟件編碼工作。接下來,需要將工程打包上傳至Maven中央倉庫,需要準備的工作如下:

  • 1.Sonatype賬號:訪問http://issues.sonatype.org 創建自己的賬號(如果已有賬號,請跳過此步驟)。
  • 2.New Project: 登錄Sonatype並創建新的項目,等待管理員審覈。
  • 3.項目認證:根據你提交的項目信息,完成認證流程。
  • 4.GPG證書:下載並安裝GPG軟件,然後生成對應的gpg證書。
  • 5.Maven配置:使用Sonatype賬號和密碼配置Maven的Server。
  • 6.項目配置:在項目的pom.xml中配置開發者、SCM、協議等信息。
  • 7.生成GPG證書:使用GPG軟件生成公鑰和密鑰。
  • 8.發佈公鑰:將GPG公鑰發佈到認證服務器。
  • 9.發佈JAR包:將本地JAR發佈到Sonatype。
  • 10.提交RELEASE:訪問http://oss.sonatype.org 完成後續工作。

1. New Sonatype Project

想要將自己的JAR發佈到Maven中央倉庫,首先得註冊一個Sonatype賬號。訪問http://issues.sonatype.org 完成註冊工作(請牢記賬號和密碼),然後使用註冊好的用戶名和密碼進行登錄。進入控制面板後,點擊“新建”按鈕開始創建一個新的項目。

提示:

注意問題類型的選擇,一定要選擇“New Project”選項。紅色標註部分爲必填選項,其餘的選項根據個人喜好選填。

2. Verify ownerShip

在Sonatype創建好項目等待幾分鐘後,管理員會發送一份認證信息到項目下方的評論區,例如:

最快的方式是採用域名認證的方式,在本文中,我的groupId是com.ramostear,因此,進入到域名提供商的控制檯,在對應的域名下添加一條TXT記錄,例如:

提示:

主機記錄值爲Sonatype中創建的項目編碼(例如:OSSRH-57599),記錄值爲Sonatype中創建的項目訪問地址(例如:http://issues.sonatype.org/browse/OSSRH-57599)

TXT記錄解析成功後,在Sonatype項目評論去回覆管理員域名爲你所有,且已經完成域名解析工作,管理員收到信息後,會再次回覆你審覈信息。例如:

3. gnupg

在上傳JAR到Maven中央倉庫是,需要提供一個用於驗證JAR的公鑰,爲此,我們需要安裝gnupg並生成對應的gpg證書。打開終端,然後輸如下命令安裝gnupg。

$ sudo apt-get install gnupg

gnupg安裝完成後,使用gpg —gen-key命令生成一個新的證書:

$ gpg --gen-key

提示:

在生成證書的過程中,要求填寫用戶名和電子郵箱等信息,其中用戶名和電子郵箱最好與Sonatype的保持一致。

證書生成後,可以使用gpg —list-keys查看證書信息:

$ gpg --list-keys

4. maven config

首先,進入Maven的安裝目錄,然後打開/conf/settings.xml文件並添加如下的server配置信息:

<server>
    <id>sonatype-nexus-snapshots</id>
    <username>sonatype account name</username>
    <password>sonatype account password</password>
</server>
<server>
    <id>sonatype-nexus-staging</id>
    <username>sonatype account name</username>
    <password>sonatype account password</password>
</server>

提示:

在server配置項中,username和password均爲你在Sonatype網站註冊的用戶名和密碼。

接下來,打開項目的pom.xml文件添加配置信息,例如:

oss-paren

<paren>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
</paren>

提示:

添加oss-parent配置信息可以簡化pom.xml的配置(你不必再添加編譯,文檔等插件的配置)

developer

<developers>
    <developer>
        <name>ramostear</name>
        <url>https://www.ramostear.com</url>
        <email>[email protected]</email>
        <roles>
            <role>developer</role>
            <role>admin</role>
        </roles>
    </developer>
</developers>

提示:

開發者信息根據實際情況進行添加,但不能爲空。

scm

<scm>
    <connection>scm:git:https://github.com/ramostear/happy-captcha.git</connection>
    <developerConnection>scm:git:https://github.com/ramostear/happy-captcha</developerConnection>
    <url>git:https://github.com/ramostear/happy-captcha.git</url>
</scm>

提示:

SCM中的地址對應修改成你自己的項目地址即可(使用Github或Gitee沒有影響)。

Licenses

<licenses>
    <license>
        <name>The Apache Software License,Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
</licenses>

提示:

若你的項目不是以Apache 2.0開放源代碼許可協議發佈,請對應修改爲你自己項目的許可協議

5. publish gpg key

在上傳JAR之前,我們需要將gpg的公鑰發佈到keyServer上。Sonatype會從以下三個服務器中獲取公鑰並驗證你的JAR包。

接下來,我們將通過gpg命令將之前生成的gpg公鑰發佈到上面的三個服務器中。命令格式如下:

$ gpg --keyserver url --send-keys gpg-pub-key

以我的爲例:

$ gpg --keyserver http://pool.sks-keyservers.net:11371 --send-keys 32360AE**************C97
$ gpg --keyserver http://keys.openpgp.org.net:11371 --send-keys 32360AE**************C97
$ gpg --keyserver http://keyserver.ubuntu.com:11371 --send-keys 32360AE**************C97

在發佈公鑰時,請注意不要忘記加“11371”端口號。

6. upload jar

完成以上5個操作後,我們便可以上傳本地JAR到Maven中央倉庫。進入到本地工程目錄,然後輸入以下命令發佈項目:

$ mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=通常爲密碼"

回車後,等待片刻,控制檯會提示你輸入密令(該密令是你在生成gpg證書時輸入的密碼)。

驗證成功後,系統將自動編譯並部署項目到Sonatype的遠程倉庫中:

7. close and release repository

項目部署成功後,訪問http://oss.sonatype.org ,並使用在Sonatype註冊的賬號和密碼進行登錄。登錄成功後,點擊左側菜單中的“Staging Repositories”選項進行下一步操作:

進入Repositories控制面板後,可以在列表中看到之前發佈的項目信息,選擇該記錄,然後點擊列表上方的“Close”按鈕,關閉當前的Repository,最後你可以點擊最下方的“Activity”選項卡查看進度:

稍等片刻,當“Close”流程完成後,點擊列表上方的“Release”按鈕,將項目提交到Maven中央倉庫中。

以上步驟完成後,你還需要返回Sonatype官網,在項目的評論區告知管理員你已經上傳項目,並且已經發布了RELEASE版本,請求關閉本次Issues。例如:

管理員會回覆你:組件會在10分鐘之內發佈到Central,兩小時之後你可以在http://search.maven.org網站上檢索到你發佈的組件。

8. search

項目成功發佈之後(至少需要2小時的等待時間),我們可以通過http://search.maven.org網站檢索自己的項目。

未經作者允許,請勿擅自轉載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章