# 如何發布自己的Java項目到Maven中央倉庫
將Java項目發布到Maven中央倉庫是開源貢獻和項目共享的重要方式。以下是詳細步驟指南:
---
## 一、前期準備
### 1.1 注冊Sonatype賬號
1. 訪問[Sonatype JIRA](https://issues.sonatype.org/)注冊賬號
2. 登錄后創建新Issue(項目類型選擇`Community Support - Open Source Project Repository Hosting`)
### 1.2 驗證域名所有權
- 若使用GitHub等托管平臺需驗證:
```xml
<!-- 在項目README添加 -->
<groupId>com.github.yourusername</groupId>
gpg --gen-key
gpg --keyserver hkp://keyserver.ubuntu.com --send-keys [密鑰ID]
<project>
<!-- 必須配置SCM信息 -->
<scm>
<connection>scm:git:https://github.com/your/repo.git</connection>
<developerConnection>scm:git:ssh://git@github.com:your/repo.git</developerConnection>
<url>https://github.com/your/repo</url>
</scm>
<!-- 配置發布信息 -->
<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>
<!-- 配置Maven插件 -->
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
</plugins>
</build>
</project>
在~/.m2/settings.xml
添加:
<servers>
<server>
<id>ossrh</id>
<username>你的Sonatype賬號</username>
<password>你的密碼/Token</password>
</server>
</servers>
mvn clean deploy -P release
Staging Repositories
查看上傳的構件Close
操作后等待自動發布(約10分鐘)發布成功后,構件會逐步同步到:
https://repo1.maven.org/maven2/
錯誤示例:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.6:sign (sign-artifacts)...
解決方案: 1. 確認GPG密鑰已上傳到服務器 2. 在pom.xml中配置gpg插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
每個版本號只能發布一次,如需更新必須使用新版本號。
版本管理:遵循語義化版本規范(SemVer)
文檔完善:
<description>
持續集成:配置GitHub Actions自動發布:
# .github/workflows/release.yml
jobs:
deploy:
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
- run: mvn -B deploy -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
完成上述步驟后,您的Java庫將在24-48小時內出現在Maven中央倉庫,全球開發者都可以通過標準依賴聲明使用您的項目! “`
(注:實際字數約850字,可根據需要擴展具體章節細節)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。