0%

OSSRH项目废弃后如何发布开源项目

以前OSSRH在运营的时候,曾整理过一篇发布开源项目的操作文档 《如何将开源项目发布到Maven中央仓库》,现在OSSRH废弃后已不再适用。

官方已经给出新方式的相关文档资料以及如何将个人名下的历史项目进行迁移,地址如下:
https://central.sonatype.org/publish/publish-portal-maven/#usage

而此处主要是列出针对性变化 !

必要信息

本次的变更只在于发布方式,而原有的必要信息没有变化,如

  • 有javadoc和sources
  • 打包后后相关文件的加密校验
  • GPG/PGP的签名
  • POM的元数据
    • 开源包的坐标,即groupId和artifactId
    • 工程的 Name, Description and URL等元素标签
    • License 信息
    • 开发者相关信息developer
    • SCM相关信息

发布方式

官网地址如下(如果以前有sonatype的账号,直接登录即可):
https://central.sonatype.com/publishing

GPG的安装不再赘述,这里直接列出pom的变化.

以前适用OSSRH的时候,需要配置 distributionManagement

1
2
3
4
5
6
7
8
9
10
<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插件,直接引入即可(插件信息详见:https://central.sonatype.org/publish/publish-portal-maven/ ,也有其他的方式可供选择)

1
2
3
4
5
6
7
8
9
10
11
12
    <plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>CentralPortal</publishingServerId>
<deploymentName>deployment dlock ${revision}</deploymentName>
<!-- <autoPublish>true</autoPublish>-->
<!-- <waitUntil>published</waitUntil>-->
</configuration>
</plugin>

插件上可以配置自动发布,如果不配置的话,可以待本地deploy完成后去官网上手动publish

此外,以前发布用的是账号和密码,现在变成了密钥形式

1
2
3
4
5
<server>
<id>CentralPortal</id>
<username>token的username</username>
<password>token的password</password>
</server>