主要就是简单记一下提交流程和注意事项。
注册过程就不说了,地址在这: https://issues.sonatype.org/secure/Signup!default.jspa,注册完成后记好用户名密码。
中央仓库的项目是有专人审核维护的,所以需要建一个 issue 告诉他们想提交什么项目。
地址在这:https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134。
标题填项目名,GroupId 和 pom.xml 里一致,ProjectUrl 填项目主页,ScmUrl 填代码仓库地址。
唯一需要注意的是 GroupId,需要有域名的所有权,没有的话开起来会麻烦点
审核一般很快,审核通过后管理员会把 issue 状态置为 Resolved,然后评论内容里告诉你下一步干啥。
内容可能类似:
- Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots
- Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2
- Promote staged artifacts into repository 'Releases'
- Download snapshot and release artifacts from group https://oss.sonatype.org/content/groups/public
- Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/content/groups/staging
同时管理员还要求第一次提交后来这评论一下,因为还有到中央仓库的同步没开,所以还继续以下操作。
Windows 操作系统去地址 https://www.gpg4win.org/download.html 下载管理工具,然后通过菜单 文件-新建密钥对
创建密钥,选择个人密钥输入邮箱密码等不停下一步就可以了。
密钥新建完后需要发布,可以直接右键发布到服务器,也可以在导出公钥后去对应网站上传
提交 JAR 包需要先修改 maven/settings.xml
和 pom.xml
,先在 settings.xml 里添加服务器信息:
<servers>
<server>
<id>服务器名称,sonatype 之类的</id>
<username>sonatype账号</username>
<password>sonatype密码</password>
</server>
</servers>
修改 pom.xml,添加 licenses scm developers 等节点信息同时修改版本号为固定版本,不能包含 SNAPSHOT,否则也能提交但不能发布。节选例如:
<!-- 略过好多结点 -->
<version>1.0.0</version>
<!-- 略过好多结点 -->
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>用户名</name>
<email>邮箱地址</email>
<organization>组织名</organization>
<organizationUrl>官网,直接 GitHub 主页也可以</organizationUrl>
</developer>
</developers>
<!-- 和 issues 里面填写的信息一致就可以了 -->
<scm>
<connection>scm:git:https://github.com/xxxxx.git</connection>
<developerConnection>scm:git:https://github.com/xxxx.git</developerConnection>
<url>https://github.com/xxxx</url>
<tag>1.0.0</tag>
</scm>
<!-- 略过好多结点 -->
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<snapshotRepository>
<!--- 和 setting.xml 配置的 server.id一致 -->
<id>sonatype</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</profile>
</profiles>
</project>
配置信息修改完直接执行:
mvn clean deploy -P release verify
执行过程中会提示输入密码,用新建 GPG 密钥时的密码,执行成功后就可以进行下一步了。
使用 sonatype 账号登录 https://oss.sonatype.org 点击左侧的 Staging Repositories
,右侧列表会看到自己的执行记录,如果没有仔细以上环节是否正常。
选中自己的执行记录,点击顶部 Close,刷新页面如果 Close 失败可以去操作日志看失败原因。
如果 Close 成功,继续选中,点击 Release 即发布成功了。
发布成功后返回 issue 主页,提交已发布的评论,可以简单点的 Release success.
,通知到即可。
当 issue 的状态置为 RESOLVED
的时候就是提交成功了,就可以去中央仓库查找应用 jar 包了。