Maven Central 发布指北

文章目录

使用GPG生成密钥对

GPG官网 下载 binary releases 版本,安装后使用下面的命令生成 key,

1
gpg --gen-key

接着按照命令行的提示一步一步选择成功后,密钥就已经生成了。

可以使用下面的命令查看生成的key。

1
gpg --list-keys

图中圈出来的后八位就是生成密钥的短 keyId ,当然,你也可以用整个 D22xxx386 作为完整的 KeyId 。然后运行下面的命令,

1
gpg --export-secret-keys [keyId] > secring.gpg

就可以在 C:\Users\Username\secring.gpg 路径下找到刚刚导出的私钥(这个私钥在最后发布的时候会用到)。

最后,使用下面的命令将公钥发送到服务器上,你的密钥就可以正式使用了。

1
gpg --send-keys [keyId]

申请发布资格

已有发布资格

Step 1: 创建 Github 账号

Step 2: 在你的账号里添加 SSH key

Step 3: 把你的项目发布到 Github 仓库。

Step 4: 申请一个 Sonatype Jira账号

Step 5: 为你打算发布的库创建一个 Jira Issue这里有一个申请实例。

申请通过后,就可以开始准备把你的库发布到 Maven Central 了。

使用Gradle插件发布

在项目中集成 gradle-maven-publish-plugin

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.vanniktech:gradle-maven-publish-plugin:0.15.1'
  }
}

apply plugin: "com.vanniktech.maven.publish"

由于现在新的申请通过后,都会让你发布到 s01.oss.sonatype.org,所以还需要在 project 层的 build.gradle 里添加如下代码来指定发布到 S01 服务器:

1
2
3
4
5
6
7
allprojects {
    plugins.withId("com.vanniktech.maven.publish") {
        mavenPublish {
            sonatypeHost = "S01"
        }
    }
}

在项目的 gradle.properties 文件里添加一些配置(也可以参考我的配置 ):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
GROUP=com.test.mylibrary
POM_ARTIFACT_ID=mylibrary-runtime
VERSION_NAME=3.0.5

POM_NAME=My Library
POM_DESCRIPTION=A description of what my library does.
POM_INCEPTION_YEAR=2020
POM_URL=https://github.com/username/mylibrary/

POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo

POM_SCM_URL=https://github.com/username/mylibrary/
POM_SCM_CONNECTION=scm:git:git://github.com/username/mylibrary.git
POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/username/mylibrary.git

POM_DEVELOPER_ID=username
POM_DEVELOPER_NAME=User Name
POM_DEVELOPER_URL=https://github.com/username/

在全局的 gradle 配置文件里 (一般在 C:\\Users\\Username\\.gradle\\gradle.properties ) 添加 Sonatype 的账号和 GPG 私钥:

1
2
3
4
5
6
mavenCentralUsername=username
mavenCentralPassword=password

signing.keyId=keyId # 用gpg生成的密钥的keyId
signing.password=password # 用gpg生成密钥时设置的passphrase
signing.secretKeyRingFile=C\:\\Users\\Username\\secring.gpg

配置完毕后,在工程根目录使用如下命令,即可将项目发布到 Maven Central 仓库:

1
2
.\gradlew publish --no-daemon --no-parallel
.\gradlew closeAndReleaseRepository

评论正在加载中...如果评论较长时间无法加载,你可以 搜索对应的 issue 或者 新建一个 issue