文章目录
创建工单
登录网址:https://issues.sonatype.org
如果还没有账号,需要先注册一个账号。
⚠️ 如果你已经拥有该group id,则可跳过该步骤,不需要再去创建工单。
参考Spring Boot的库,都是发布在同一group id下面的。 <groupId>org.springframework.boot</groupId>
GPG环境
我们需要一个GPG环境,用来对上传的文件进行加密和签名,保证你的jar包不被篡改,下载地址:
windows: https://www.gpg4win.org/
mac os: https://www.gpg4win.org/get-gpg4win.html
MAVEN_HOME/conf/setting.xml
<servers>
<server>
<id>sonatype-nexus-staging</id>
<username>JIRA账号</username>
<password>JIRA密码</password>
</server>
</servers>
源码pom.xml
<licenses></licenses>
<scm></scm>
<developers></developers>
<profiles>
<profile>
<id>sonatype-oss-release</id>
<build>
<plugins>
<!-- Source,用来生成Source Jar文件 -->
<artifactId>maven-source-plugin</artifactId>
<!-- Javadoc,用来生成 javadoc 文档 -->
<artifactId>maven-javadoc-plugin</artifactId>
<!-- Gpg Signature,用来对工程文件进行自动签名 -->
<artifactId>maven-gpg-plugin</artifactId>
<!-- Nexus Staging Maven,用来将工程发布到中央仓库 -->
<artifactId>nexus-staging-maven-plugin</artifactId>
</plugins>
</build>
</profile>
</profiles>
<distributionManagement>
<snapshotRepository>sonatype-nexus-snapshots</snapshotRepository>
<repository>sonatype-nexus-staging</repository>
</distributionManagement>
mvn发布
# 不执行单元测试,也不编译 ,GPG证书有设置密码
mvn clean deploy -P sonatype-oss-release -Darguments="gpg.passphrase=hello1234." -Dmaven.test.skip=true
# 不执行单元测试,也不编译,GPG证书没有设置密码
mvn clean deploy -P sonatype-oss-release -Dmaven.test.skip=true
正式发布
使用步骤一注册的Jira账号,登录:https://oss.sonatype.org
去各大仓库查看结果
https://repo.maven.apache.org/maven2/
QA
如何删除已经发布到 mavenCentral 中的包?
只能重新发一个新版本,但是对于已经发布的版本,不能修改或删除。
优快云 - 如何删除已经发布到 mavenCentral 中的包
Deploy成功后,各大Maven仓库不能搜索到对应的软件/版本?
Deploy成功,nexus可以搜索到相应版本,其他Maven仓库不能搜索到相应版本。
- 可能情况一:各大Maven仓库从nexus数据同步存在时间差,需要多等待一段时间。
- 可能情况二:仅仅只Deploy到
<snapshotRepository>
,未Deploy到<repository>
- 可能情况三:
pom.xml
设置的<version>
是以SNAPSHOT
结尾的,如:1.0-SNAPSHOT
。