maven Central 上传

maven Central 上传

一、Sonatype 账号

https://fullstackaction.com/pages/8ad3be

1、注册 Sonatype

2、申请上传权限

enter image description here

Group Id :如io.github.zrq1060

二、GPG 签名

https://juejin.cn/post/6951209116521988132#heading-3
https://www.jianshu.com/p/1c715203c7c6

1、安装 gpg

2、生成密钥

gpg --full-generate-key

在执行过程会让选择加密方式,我这边使用的是RSA and RSA,长度输入4096,过期时间直接回车代表不过期,然后提示让输入User ID和一个邮箱,这里可以使用注册SonaType时候用的用户名和邮箱,当然也可以用其他的。接着最后一步输入O,注意这里是大写的O不是零,然后回车接着就会提示让输入密码,输入一次后还会有一次确认输入,这个密码一定要记住后期会用到。

3、生成secretKeyRingFile的文件

切到~/.gnupg/下再去执行

gpg --export-secret-keys -o secring.gpg

执行以上命令创建文件secring.gpg,创建过程会让输入上边我们创建密钥过程中输入的密码,验证完密码后会在~/.gnupg目录生成secring.gpg文件,这个文件的路径我们后续在生成配置文件的时候也需要。

4、上传公钥

您已经生成了一对密钥—一个私钥和一个公钥。你要把私钥藏起来用它来给你的artifacts签名。公钥必须上传到服务器上,这样任何人都可以检查它是否属于你,你可以通过以下方式来做(使用你自己的密钥ID!):

gpg --keyserver keyserver.ubuntu.com --send-keys [密钥指纹]

二、Gradle 配置

https://github.com/vanniktech/gradle-maven-publish-plugin

1、build.gradle

progect build.gradle

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.vanniktech:gradle-maven-publish-plugin:0.15.1'
  }
}

library build.gradle

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

2、设置属性

gradle.properties中添加。

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/

GROUPio.github.zrq1060

3、上传到哪里

3.1、上传到 s01.oss.sonatype.org

progect build.gradle

allprojects {
    plugins.withId("com.vanniktech.maven.publish") {
        mavenPublish {
            sonatypeHost = "S01"
        }
    }
}

3.2、配置Sonatype的信息

由于其具有隐私性,所以放到Global Properties(如:/home/zrq1060/.gradle/gradle.properties)下

mavenCentralUsername=用户名
mavenCentralPassword=密码

4、签名

5、配置签名信息Group Id :如:io.github.zrq1060

由于其具有隐私性,所以放到Global Properties(如:/home/zrq1060/.gradle/gradle.properties)下

signing.keyId=秘钥后8位
signing.password=设置的密码
signing.secretKeyRingFile=/home/yourusername/.gnupg/secring.gpg

6、Releasing

# prepare your release by assigning a version (remove the -SNAPSHOT suffix)
./gradlew publish --no-daemon --no-parallel
./gradlew closeAndReleaseRepository

它假设调用 closeAndReleaseRepository 时只有一个临时存储库处于活动状态。如果您有陈旧的临时存储库,则必须通过登录https://oss.sonatype.org(或您的 Nexus 实例)来删除它们。

四、发布

1、上传

./gradlew publish --no-daemon --no-parallel

或可执行Tasks下的publishing/publish

2、关闭并发布

./gradlew closeAndReleaseRepository

或可执行Tasks下的release/closeAndReleaseRepository
或可进入https://s01.oss.sonatype.org/#stagingRepositories下进行对应图形化操作

等待一段时间就可以在 https://search.maven.org/ 查询发布结果。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇
京ICP备18058279号-1