使用GPG生成密钥对
在 GPG官网 下载 binary releases 版本,安装后使用下面的命令生成 key,
接着按照命令行的提示一步一步选择成功后,密钥就已经生成了。
可以使用下面的命令查看生成的key。

图中圈出来的后八位就是生成密钥的短 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 。