MavenCentral库发布记录

news2024/11/18 17:28:39

最近发布了 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

在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述

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

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

二、准备 GPG 密钥

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

scoop install gpg

gpg --generate-key

gpg --list-keys

这里获取到pub公钥,

在这里插入图片描述

创建完成,–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 任务:

在这里插入图片描述

配置发布

添加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

在这里插入图片描述

  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/962491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果macOS 14开发者预览版Beta 7发布 新增超过100款视频壁纸和屏保

8 月 31 日,苹果向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 7 更新(内部版本号:23A5337a),本次更新距离上次发布隔了 8 天。 苹果发布 Beta 7 更新的同时,还发布了第 6 个公测版,正式版…

Vue项目build打包编译后如何再修改后台请求地址

在public文件夹下新建config.js文件 在config.js中添加请求地址&#xff1a; window.myURL {baseURL: http://127.0.0.1:8080, }在index.html中引入创建的config.js <script src"./config.js" type"text/javascript"></script>在请求后台地…

访问学者申请需要具备哪些条件?

访问学者申请是一项重要的学术活动&#xff0c;要求申请者具备一定的条件和资格。知识人网小编提箱&#xff0c;申请访问学者通常需要满足以下条件&#xff1a; 1. 学术背景&#xff1a;申请者通常需要拥有博士学位或相当于博士学位的学术资格。他们的学术背景应该与他们希望进…

报错处理:Out of memory

报错环境&#xff1a; Linux 具体报错&#xff1a; Out of memory error&#xff0c;系统内存不足 排错思路&#xff1a; 当系统的内存资源被耗尽时&#xff0c;会出现 Out of memory 错误。这可能是由于应用程序占用了大量的内存&#xff0c;或者系统负载过高导致内存不足引起…

sap 一次性供应商 供应商账户组 临时供应商

sap中有一次性供应商这个名词&#xff0c;一次性供应商和非一次性供应商又有什么区别呢&#xff1f; 有如何区分一次性供应商和非一次性供应商呢&#xff1f; 1 区分一次性供应商和非一次性供应商的标志 在供应商的表LFA1中有个字段标示XCPDK&#xff08;一次性科目&#xff…

轻松打造高效Linux工作环境

引言 作为一名Linux持续学习者&#xff0c;我们经常会遇到繁琐的日常工作任务&#xff0c;例如查找某个文件、文件传输、调试等。如何便捷高效地完成这些任务是我们必须面对的问题。本文将为你提供一些实用的技巧和工具&#xff0c;帮助你轻松打造高效的Linux工作环境。 快速查…

IDEA 设置提示信息

IDEA 设置提示信息 File->Settings->Editor->Code Completion 取消勾选 Math case

联网智能实时监控静电离子风机的工作流程

联网智能实时监控静电离子风机是通过将静电离子风机与互联网连接&#xff0c;实现对其状态和性能的远程监控和管理。 具体实现该功能的方法可以包括以下几个步骤&#xff1a; 1. 传感器安装&#xff1a;在静电离子风机上安装适当的传感器&#xff0c;用于感知相关的参数&…

六、Kafka-Eagle监控

目录 6.1 MySQL 环境准备6.2 Kafka 环境准备6.3 Kafka-Eagle 安装 6.1 MySQL 环境准备 Kafka-Eagle 的安装依赖于 MySQL&#xff0c;MySQL 主要用来存储可视化展示的数据 6.2 Kafka 环境准备 修改/opt/module/kafka/bin/kafka-server-start.sh 命令 vim bin/kafka-server-sta…

运用全新空调插座秒变智能新体验

最近台风肆虐&#xff0c;城市内涝等灾害频频发生&#xff1b;气候离不开环境&#xff0c;环境也离不开气候&#xff0c;在这两者之间&#xff0c;人类却成了第三者。 随手关灯&#xff0c;节约用电&#xff0c;是一种再普通不过的行为&#xff0c;然而10亿人在同一时间做同样…

SAP接口调用方式总结

目录 一、RFC调用/JCO调用二、Restful调用三、Webservice调用四、直联接口五、PI接口&#xff1a;具体不做赘述&#xff0c;可以百度总结&#xff1a; 前言&#xff1a;跟外围系统对接&#xff0c;首要要确认好接口的调用方式&#xff0c;然后再根据相关的调用方式进行相应的操…

windows11安装msi文件的方法

文章导航: 问题介绍开启Windows Installer服务安装msi文件 问题介绍 因为msi后缀的文件属于软件安装文件, 一般情况我们直接双击或者打开就可进行相应的安装操作. 但是对于新电脑, 自己刚买来, 而且不知道这种文件该如何打开的情况, 我们进行了这篇文件的介绍~ 希望能够帮助…

C#,《小白学程序》第十二课:日历的编制,时间DateTime的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十二课&#xff1a;日历的编制&#xff0c;时间DateTime的计算方法与代码 /// 本课学习时间类型的数据 DateTime 的简单方法&#xff0c;并编制一个月的日历。 /// </summary> /// <param name"sender"…

通义千问部署搭建

文章目录 一、部署11.1 打开通义千问-7B-预训练-模型库-选择资源1.2 使用Netbook2.1 运行2.2 复制脚本2.2.1 问题1 &#xff1a;ImportError: This modeling file requires the following packages that were not found in your environment: transformers_stream_generator. R…

Configuring HSRP(Hot Standby Routing Protocol)

网络冗余架构设计中&#xff0c;必不可少的就是网关冗余功能&#xff0c;而很多核心网中都会用到HSRP(Hot Standby Routing Protocol)协议来实现这个功能。 热备份路由协议&#xff08;HSRP&#xff09; 热备份路由协议&#xff08;HSRP&#xff09;是思科公司专有的协议&…

JVM面试核心点

一、JDK体系 二、JVM体系 三、JVM内存模型 public class Math {public static final int data 666;public static UserEntity user new UserEntity();public int compute() { // 一个方法对应一块栈帧内存区域int a 1;int b 2;int c (ab)*10;return c;}public static voi…

接口自动化测试 —— JMeter断言基本使用

断言 断言&#xff1a;就是让程序判断预期结果和实际结果是否一致 注意&#xff1a;请求发起成功了&#xff0c;不代表着一定符合预期的结果。 JMeter中常用断言 响应断言 JSON断言 持续时间断言 响应断言 步骤&#xff1a;&#xff1a;线程组——HTTP取样器——断言——…

VM装MACos

准备工具: 下载macOS Ventura 13 ISO镜像文件、VMware Workstation Pro最新版并激活(自行官网下载即可,需要镜像和key可以最下边的云盘自取) 下载Unlocker for VMware Workstation Pro,该工具用于解锁 macOS 系统支持、目前已支持macOS 13。 有需要的部分工具我放到最后 …

出行365 CTO张劲涛:智慧公路客运出行,数据库先行

&#x1f399;️&#x1f399;️《DB大咖说》第二期来啦&#xff01; 「DB大咖说」的第 2 期节目&#xff0c;我们邀请到的是盛威时代&#xff08;出行365&#xff09;CTO 张劲涛&#xff0c;在高铁、飞机如此发达的出行领域&#xff0c;他却深耕公路客运 11 年&#xff0c;他表…

利用 AI 赋能云安全,亚马逊云科技的安全技术创新服务不断赋能开发者

文章分享自亚马逊云科技 Community Builder&#xff1a;李少奕 2023年6月14日&#xff0c;一年一度的亚马逊云科技 re:Inforce 全球大会在美国安纳海姆落下了帷幕。re:Inforce 是亚马逊云科技全球最大的盛会之一&#xff0c;汇集了来自全球各地的安全专家&#xff0c;共同学习、…