溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

發布jar到maven中央倉庫的方法

發布時間:2021-06-26 10:06:12 來源:億速云 閱讀:272 作者:chen 欄目:大數據
# 發布JAR到Maven中央倉庫的方法

## 引言

在Java生態系統中,Maven中央倉庫是最重要的依賴管理倉庫之一。將項目發布到Maven中央倉庫不僅能夠方便其他開發者使用你的庫,還能提升項目的可見性和可信度。本文將詳細介紹如何將JAR包發布到Maven中央倉庫,包括前期準備、配置、簽名和發布流程。

---

## 1. 準備工作

### 1.1 注冊Sonatype賬號

Sonatype是Maven中央倉庫的管理者,所有發布到中央倉庫的JAR包都需要通過Sonatype的審核。首先,你需要注冊一個Sonatype賬號:

1. 訪問 [Sonatype JIRA](https://issues.sonatype.org/)
2. 點擊 **Sign Up** 注冊賬號
3. 完成郵箱驗證

### 1.2 申請Group ID

Group ID通常是項目的頂級域名(如`com.github.yourusername`)。如果你沒有自己的域名,可以使用GitHub的域名(如`io.github.yourusername`)。

1. 在Sonatype JIRA上創建一個新的Issue:
   - 項目:**Community Support - Open Source Project Repository Hosting (OSSRH)**
   - 類型:**New Project**
   - 標題:**Publish your.group.id to Maven Central**
   - 描述:說明你的項目信息,包括Group ID、項目URL等
2. 等待審核(通常需要1-2個工作日)

### 1.3 安裝GPG工具

Maven中央倉庫要求所有發布的文件必須經過GPG簽名。你需要安裝GPG工具并生成密鑰對:

- **Windows**:下載 [Gpg4win](https://www.gpg4win.org/)
- **MacOS**:通過Homebrew安裝:`brew install gnupg`
- **Linux**:使用包管理器安裝(如`apt-get install gnupg`)

生成密鑰對:
```bash
gpg --gen-key

按照提示輸入姓名、郵箱和密碼。生成完成后,導出公鑰:

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys YOUR_KEY_ID

2. 配置Maven項目

2.1 添加Maven插件

在項目的pom.xml中添加以下插件和配置:

<build>
    <plugins>
        <!-- 生成源碼和Javadoc JAR -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.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-javadoc-plugin</artifactId>
            <version>3.3.2</version>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- GPG簽名插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>3.0.1</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-release-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <autoVersionSubmodules>true</autoVersionSubmodules>
                <useReleaseProfile>false</useReleaseProfile>
                <arguments>-Dgpg.passphrase=${gpg.passphrase}</arguments>
            </configuration>
        </plugin>
    </plugins>
</build>

2.2 配置SCM信息

pom.xml中添加項目的版本控制信息:

<scm>
    <connection>scm:git:https://github.com/yourusername/yourproject.git</connection>
    <developerConnection>scm:git:https://github.com/yourusername/yourproject.git</developerConnection>
    <url>https://github.com/yourusername/yourproject</url>
</scm>

2.3 配置Distribution Management

添加Sonatype的倉庫地址:

<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>

3. 配置Maven Settings

~/.m2/settings.xml中添加Sonatype賬號和GPG配置:

<settings>
    <servers>
        <server>
            <id>ossrh</id>
            <username>your-sonatype-username</username>
            <password>your-sonatype-password</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>gpg</id>
            <properties>
                <gpg.executable>gpg</gpg.executable>
                <gpg.passphrase>your-gpg-passphrase</gpg.passphrase>
            </properties>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>gpg</activeProfile>
    </activeProfiles>
</settings>

4. 發布到Maven中央倉庫

4.1 構建和簽名

運行以下命令構建項目并生成簽名:

mvn clean deploy

4.2 登錄Sonatype Nexus

  1. 訪問 Sonatype Nexus
  2. 使用Sonatype賬號登錄
  3. Staging Repositories 中找到你的項目

4.3 關閉和發布

  1. 選中你的倉庫,點擊 Close
  2. 等待驗證通過后,點擊 Release
  3. 等待同步到Maven中央倉庫(通常需要幾小時到幾天)

5. 驗證發布

  1. 訪問 Maven Central
  2. 搜索你的Group ID和Artifact ID
  3. 確認版本已顯示

6. 常見問題

6.1 GPG簽名失敗

  • 確保GPG密鑰已上傳到服務器
  • 檢查settings.xml中的gpg.passphrase是否正確

6.2 403權限錯誤

  • 確認Sonatype賬號有權限發布到申請的Group ID
  • 檢查settings.xml中的賬號密碼是否正確

6.3 同步延遲

  • 首次發布可能需要較長時間同步
  • 如果超過48小時未同步,可以在Sonatype JIRA上提交Issue詢問

結語

通過以上步驟,你可以成功將JAR包發布到Maven中央倉庫。發布后,其他開發者只需在pom.xml中添加依賴即可使用你的庫。記得在項目中添加文檔和示例代碼,方便他人快速上手! “`

這篇文章詳細介紹了從注冊賬號到發布完成的完整流程,涵蓋了配置、簽名和常見問題解決方法。你可以根據需要調整內容或補充更多細節。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女