MavenCentral库发布记录

这篇具有很好参考价值的文章主要介绍了MavenCentral库发布记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近发布了 Android 路由库 URouter,支持 AGP8、ActivityResult启动等特性。
把提交到 Maven Central 过程记录一下。

一、注册 Sonatype 账号,新建项目

注册
https://​​issues.sonatype.org

登录后,新建项目:

相关选项,选择:

  • 项目:Community Support - Open Source Project - Repository Hosting (OSSRH)
  • 类型:New Project
  • 概要:填写 Git 项目名即可
  • Group Id: Github项目,io.github.xxx 用户名
  • Project URL: 填写 github 项目主页
  • SCM url: 填 github项目地址 + .git

MavenCentral库发布记录,Android,java
MavenCentral库发布记录,Android,java

点击提交后,等待 3-5分钟 回复,验证 github 所有权。

  • 在自己项目里,在 github 创建 回复的 仓库
  • 创建完成后,回复评论,大概意思就是即可: 仓库已创建

MavenCentral库发布记录,Android,java

等待5-10分钟后,验证成功

这时候,就有上传到 sonatype nexus 仓库权限了

二、准备 GPG 密钥

GPG 来生成 密钥,安装 GPG
Windows下使用scoop安装:

scoop install gpg

gpg --generate-key

gpg --list-keys

这里获取到pub公钥,

MavenCentral库发布记录,Android,java

创建完成,–list-keys 显示 pub 第二方 一串:
67E95C8F2931C822********************F7E9
后面用于 上传和验证 公钥

上传公钥

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 
67E95C8F2931C822********************F7E9

# 验证是否上传功能,后 8 位即可
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys ****F7E9

导出密钥,后面签名用

gpg --export-secret-keys 67E95C8F2931C822********************F7E9 > secret.gpg

三、Gradle项目配置

本地发布和远程发布,需要 maven-publish 插件,
GPG为了签名,需要 signing 插件。项目模块 build.gradle 配置:

plugins {
    id 'maven-publish'
    id 'signing'
}

添加后,gradle 就多了 publish 任务:

MavenCentral库发布记录,Android,java

配置发布

添加maven-publish后,开始配置 publishing 代码块

// 配置发布后 groupId,默认 artifactId 是项目模块名
group = 'org.example'
version = '1.0'

task sourcesJar(type: Jar) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Jar) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

publishing {
    publications {
        release(MavenPublication) {
            // 配置POM信息
            pom {
                name = project.name
                description = 'xxx'
                url = 'https://github.com/xxx/xxx'
                // 开源协议
                licenses {
                    license {
                        name = 'The Apache License, Version 2.0'
                        url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                // 配置开发者信息
                developers {
                    developer {
                        id = 'xxx'
                        name = 'xxx'
                        email = 'xxx@163.com'
                    }
                }

                // scm
                scm {
                    connection = 'https://github.com/xxx/xxx.git'
                    developerConnection = 'https://github.com/xxx/xxx.git'
                    url = 'https://github.com/xxx/xxx'
                }
            }

            // 发布文档 JAR
            artifact javadocJar
            // 发布源码 JAR
            artifact sourcesJar

            from components.java
        }
    }

    repositories {
        maven {
            url "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
            credentials {                
                username project.sonaUsername // sonatype username
                password project.sonaPassword // sonatype password
            }
        }
    }
}

signing {
    sign publishing.publications.release
}
配置 sonatype 账号 和 GPG密钥

上面配置,还不能直接使用,在 gradle.properties 配置用到的 变量:

对于密码信息,可以放到 用户目录下的 gradle.properties,
Windows下是:

C:\Users\用户名\.gradle\gradle.properties

添加 账号信息:

# sonatype 账号信息
sonaUsername=xxxx
sonaPassword=xxxx
# GPG Signing Info
signing.keyId=XXXXXXXX
signing.password=xxxxxx
# 上面导出的 GPG 密钥路径
signing.secretKeyRingFile=C:\\Users\\username\\.gpg\\secret.gpg

四、发布到仓库

项目下执行命令进行发布:

.\gradlew.bat publish

发布成功后,进入 snoatype nexus 后台,管理发布:
https://s01.oss.sonatype.org/#stagingRepositories

MavenCentral库发布记录,Android,java文章来源地址https://www.toymoban.com/news/detail-689126.html

  1. 在 Staging Repositories,勾选发布的仓库,点击Close并确定
  2. 稍等几分钟,验证通过,点 Release
  3. 10-30分钟后,会在 Maven Central 同步更新
  • 可在 https://mvnrepository.com/ 搜索查看库

文档

  • Android 发布: https://developer.android.com/build/publish-library/upload-library
  • https://blog.51cto.com/u_12853553/5896541

到了这里,关于MavenCentral库发布记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible

    最近一个Flutter项目有新需求,开发时一直是在iOS设备上运行,花了几天做完后运行到Android设备测试,结果项目构建失败了。 Flutter: 3.7.11 Android Studio: 2022.2.1 Java: 17.0.6 Gradle: 7.4 Android Gradle Plugin (AGP): 4.1.3 项目构建报错日志: 报错有点眼熟,根据以往开发经验,应该是Gradle版本

    2024年02月04日
    浏览(57)
  • Android问题记录 - Unable to make field private final java.lang.String java.io.File.path accessible(持续更新)

    最近一个Flutter项目有新需求,开发时一直是在iOS设备上运行,花了几天做完后运行到Android设备测试,结果项目构建失败了。 Flutter: 3.7.11 Android Studio: 2022.2.1 Java: 17.0.6 Gradle: 7.4 Android Gradle Plugin (AGP): 4.1.3 项目构建报错日志: 报错有点眼熟,根据以往开发经验,应该是Gradle版本

    2024年02月13日
    浏览(42)
  • 宝塔发布网站问题汇总和记录

    1、添加网站站点后打不开 解决办法,关闭防跨站攻击2 2、laravel项目部署到linux的时候出现The stream or file \\\"/home/www/storage/logs/laravel.log\\\" could not be opened in append mode 给目录加权限 3、Class \\\"Redis\\\" not found php中redis扩展没有安装,需要安装一下 4、数据库没有配置

    2024年01月18日
    浏览(24)
  • SQLite从出生到现在(发布历史记录)(二十二)

    上一篇:从 SQLite 3.5.9 迁移到 3.6.0(二十一) 下一篇:PSQLite的RAGMA 声明 SQLite拥有别人无法比拟的装机量,究竟什么成就了SQLite呢,本文将SQLite的历史版本记录粗列一下,供各位朋友参详如何做一个高质量的程序的引文,也许下一个爆款的软件就是您参与的项目。SQLite拥有超过

    2024年04月16日
    浏览(65)
  • 记录一次使用Jenkins上传服务器并发布

    Index of /jenkins/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 首先去清华园镜像下载jenkins对应操作系统版本的软件,安装之后,登录jenkins,jenkins需要jre11以上版本的运行环境,如果使用的java8(不要使用java8版本的jenkins.war那个版本的插件下载不了,可能已经不支持了,老

    2024年01月16日
    浏览(52)
  • 记录自己从零开始创建个人小程序到发布的大致过程

    首先不管是要创建个人小程序还是公众号等,都要打开微信公众平台。本文以微信小程序为例,创建一个手工花名片。本文只用于自己学习记录。参考微信社区 1、打开微信公众,点击注册 链接:https://mp.weixin.qq.com/ 2、点击注册后,跳转页面,点击小程序 3、填写注册小程序

    2024年02月12日
    浏览(48)
  • flutter Android 打包和发布

    环境 mac vscode 项目简易打包 打开VScode终端:输入命令flutter build apk即可 可能报错: w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath: 修改android/build.gradle 中版本信息 项目正式打包 1、版本修改 在pubspec.yaml中,修改版本信息 可能感觉很疑惑,

    2024年02月12日
    浏览(36)
  • 【Hololens2目标检测】YoloDetectionHoloLens-Unity项目发布记录

    win10专业版 Unity2019.4 VS2017( 一定要用这个版本的VS! ) Hololens2(打开开发者模式) win10 SDK 10.0.19041.0 项目来源:YoloDetectionHoloLens-Unity 这是一个使用Hololens进行目标检测的项目。Hololens端负责采集和显示,电脑端处理图像,并标注,将标注框传回Holo端进行显示。 具体的项目发

    2024年02月09日
    浏览(49)
  • 记录使用jenkins配置maven,并且打包,部署,发布maven项目的过程

    专栏的前面几篇博客已经把jenkins和gitlab集成起来了,接着我们开始打包,部署发布maven项目 首先在jenkins中安装maven,docker安装的maven默认安装了java,但是没有安装maven,所以这里我们需要自己进入到jenkins容器中,然后安装maven。 我这里的maven是自己在官网传送门下载的最新版

    2024年02月02日
    浏览(81)
  • Unity 3D PC平台发布|| Unity 3D Web 平台发布||Unity 3D Android平台发布

    PC 是最常见的游戏运行平台。 随着欧美游戏的崛起,PC 平台随之发生游戏登陆大潮。 在 PC 平台上发布游戏的步骤: 打开要发布的 Unity 3D 工程,执行  File  →  Build Settings  菜单命令。 在  Platform  列表框中选择  PC,MacLinux Standalone  选项,在右侧的  Target Platform  下拉列

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包