发布Android Lib 到 MavenCentral

news2024/12/23 23:51:49

新建 Sonatype 项目

注册账号:

https://issues.sonatype.org/secure/Signup!default.jspa

这里注册不需要什么验证码,很简单。

创建问题

点击新建:
在这里插入图片描述
在这里插入图片描述
概要:自定义,写项目名称即可。
GroupId:如果是github上面的项目,不要使用com.github.*作为groupId,可以使用io.github.*

在这里插入图片描述
Project URLSCM url 按照下面的建议填写即可;
创建完成后下面很快会有回应,具体你的表单有什么问题,下一步怎么操作都会列举出来。
在这里插入图片描述
这里我的创建有两个问题

  1. groupId 不符合规范
  2. 需要创建一个项目进行校验
    按照上面提供的链接 创建一个 https://github.com/myusernamehsw/OSSRH-92470
    项目即可。

上面的问题修改完成后,为了加快进度,可以用一句优美的英文评论下。当出现Congratulations! 那就算成功了。可以进行下一步了。

新建 GPG 密钥对

以Mac电脑位例

安装gpg

brew install gpg

可能经过很长时间才能完成,耐心等待

生成 GPG 密钥对

gpg --generate-key

查看 GPG 密钥对

gpg --list-keys

上传公钥

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 【密钥指纹】

导出密钥文件

# 导出公钥
gpg --export 【密钥指纹】 > my_pub.gpg
# 导出私钥
gpg --export-secret-keys 【密钥指纹】 > my_pri.gpg

配置发布脚本

我这里使用的是 vanniktech 插件,配置比较简单。

修改lib下面的build.gradle
import com.vanniktech.maven.publish.SonatypeHost

plugins {
    id 'com.android.library'
    id 'org.jetbrains.kotlin.android'
    // 添加 vanniktech
    id "com.vanniktech.maven.publish" version "0.25.2"
}

......

mavenPublishing {
    publishToMavenCentral(SonatypeHost.S01, /* automaticRelease */ true)
    signAllPublications()
}
gradle.properties
# 根据自己创建的工单,替换掉下面的内容
GROUP=io.github.myusernamehsw
POM_ARTIFACT_ID=ViewBindingKtx
VERSION_NAME=1.0.0

POM_NAME=ViewBindingKtx
POM_DESCRIPTION=Android ViewBindingKtx
POM_INCEPTION_YEAR=2023
POM_URL=https://github.com/MyUserNameHSW/ViewBindingKtx

POM_LICENSE_NAME=The Apache Software License, Version 2.0
POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENSE_DIST=repo

POM_SCM_URL=https://github.com/MyUserNameHSW/ViewBindingKtx
POM_SCM_CONNECTION=scm:https://github.com/MyUserNameHSW/ViewBindingKtx.git
POM_SCM_DEV_CONNECTION=scm:https://github.com/MyUserNameHSW/ViewBindingKtx.git

POM_DEVELOPER_ID=MyUserNameHSW
POM_DEVELOPER_NAME=MyUserNameHSW
POM_DEVELOPER_URL=https://github.com/MyUserNameHSW

# 下面的自行补充

# 密钥ID的后8位
signing.keyId=
# 密钥密码
signing.password=
#
signing.secretKeyRingFile=[导出的私钥文件路径,如 /Users/pengxurui/xxx.gpg]

# Sonatype账号&密码
mavenCentralUsername=
mavenCentralPassword=

发布

publish

在这里插入图片描述
点击上方菜单进行发布

如果Tasks下面没有这么多菜单,而是出现 Task list not built
那就点击这个按钮 -> Experimental ->

在这里插入图片描述
重新sync项目即可

nexus 发布 release

进入 https://s01.oss.sonatype.org/
并且使用 Sonatype 账号登录。

在这里插入图片描述
点击 Staging Repositories 菜单,点击 Release 进行发布即可

然后在上面的搜索中搜索你的项目名称即可以看到了

在这里插入图片描述
然后可以集成到自己的项目中测试一下能不能正常下载。

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

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

相关文章

C语音:打印整数二进制的奇数位和偶数位

题目: 获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列 思路: 总体思路: (一). 输入数据 (二). 打印奇数位: 使用 for循环 循环产生 1~32 之间的偶…

2023年5月 青少年软件编程(图形化) 等级考试试卷(一级)

青少年软件编程(图形化) 等级考试试卷(一级)2023.6 一、 单选题(共 25 题, 共 50 分) 1.看图找规律, 请问下图红框中是? ( ) A. B. C. D. 标准答案: D 试题解…

centos系统把.net6 web api部署到docker

为了搞定docker是怎么部署的,做个笔记 前提条件准备一个core项目,使用vs自带的docker打包假如你选择docker支持的时候不小心安装了Docker Desktop;还可以简单的先部署到本地docker中发布到centosdocker常用命令 前提条件 一台centos 8.0 版本以上的linu…

软件测试的7年,我秃了,也变强了...

当前就业环境,裁员、失业消息满天飞,好像能有一份工作就不错了,更别说高薪。其实这只是一方面。另一方面,各大企业依然求贤若渴,高技术人才依然紧缺,只要技术过硬,拿个年包50w不是问题。 人生格…

i.MX RT1010跨界MCU(MCUXpresso IDE上手体验)

MCUXpresso IDE是专为NXP半导体的基于ARM Cortex-M内核的MCU芯片开发而设计的,其优势主要体现在以下几个方面: MCUXpresso IDE集成了MCUXpresso SDK,这是NXP提供的一个软件开发套件,包含了底层驱动、中间件以及大量的示例代码和应…

Charles Windows10使用 证书安装 过期重设 证书加入到受信任根目录 配置访问WhatsApp

普通教程文档 抓包神器 Charles 使用教程详解 - 知乎 界面选项详细讲解 Charles的功能介绍与使用教程,一学就会,不信就来试试? 疑难杂症 由于CA 根证书不在“受信任的根证书颁发机构”存储区中,所以它不受信任 1、winr 运行…

SandQuant停止运营,免费获取A股数据

亲爱的各位朋友们: SandQuant即日起不再对外提供任何服务,为了感恩曾经支持过我们的客户朋友,现免费提供所有A股数据(数据非常庞大,请酌情下载),请通过链接自取。 请关注我们获取链接&#xff…

产品不可或缺的文档——帮助文档

在互联网时代,产品的更新迭代速度越来越快,产品功能也越来越复杂,为了让用户能够更好地理解和使用产品,帮助文档逐渐成为了产品不可或缺的一部分。本文将从帮助文档的作用、设计原则、撰写技巧等方面探讨帮助文档的重要性及如何编…

【AI面试】损失函数(Loss),定义、考虑因素,和怎么来的

神经网络学习的方式,就是不断的试错。知道了错误,然后沿着错误的反方向(梯度方向)不断的优化,就能够不断的缩小与真实世界的差异。 此时,如何评价正确答案与错误答案,错误的有多么的离谱,就需要一个评价指标。这时候,损失和损失函数就运用而生。 开始之前,我们先做…

MySQL数据库——初步安装与数据表结构数据管理

MySQL数据库——初步安装与数据表结构数据管理 一、数据库的基本概念1.数据库基本常识2.数据库系统发展史 二、数据库的分类1.关系数据库(SQL)2.非关系数据库(NO SQL) 三、mysql的数据类型1.常用的数据库类型2.char与varchar的区别…

ijkplayer 支持srt协议 rtmp协议编译步骤

写在前面 ffafaf这个编译真的太垃圾了 一堆毛病 感受下webrtc 傻瓜式编译 环境首先必须ndk 是android-ndk-r15c 或者 android-ndk-r14b ubuntu 系统随便22或者20,18都行 有个非常重要的点python必须是2.7 不然你会看到一大堆报错 高版本的ubuntu默认都是python3…

回溯算法基本思想及其实现

文章目录 基本思想回溯算法的递归框架组合问题组合总和组合去重子集全排列 基本思想 回溯算法是一种递归算法,它试图通过尝试不同的选择,解决一个问题。它的基本思想是从可能的决策开始搜索,如果发现这条路往下走不能得到有效的解答&#xf…

12-事件模型(也就是一个先后触发顺序)

一、事件与事件流 HTML文档、浏览器中发生的一种交互。使得具备互动性,加载、鼠标、自定义事件。 由于DOM是一个树结构,意味着标签存在嵌套关系,当绑定事件的时候,当触发子节点的时候,一个顺序问题,概念-事…

人机交互学习-4 交互设计过程

交互设计过程 交互设计过程基本活动关键特征 设计过程中的问题如何选取用户?如何明确需求?如何提出候选方案?如何在候选方案中选择? 交互设计生命周期模型星型生命周期模型可用性工程生命周期模型 交互设计过程管理界面设计的4个支…

这三个方法可以视频音频转换你知道吗?

小明:你听说过音频转换吗?最近我在学习音乐制作,发现这个功能特别有用! 小红:啊,好像没有听说过。它是用来干嘛的? 小明:简单来说,就是可以将不同格式的音频文件进行转…

嵌入式Linux应用开发笔记:串口

文章目录 目的基础说明开发准备设备树应用程序 应用程序与演示代码演示 总结设备树文件 目的 串口(UART)是嵌入式设备中比较常用的功能。这篇文章将记录下应用程序中串口操作相关内容。 这篇文章中内容均在下面的开发板上进行测试: 《新唐N…

阿里 P8 架构师总结的 Java 面试笔记,上线仅七天,Github 标星 55K

作为一名优秀的程序员,技术面试是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 如果你参加过一些大厂面试,肯定会遇到一些这样的问题: 1、看你项目都用的框架,熟悉 …

AI翻唱整合

感谢阅读 不完全原创声明环境部署下载工具包安装人声背景音分离工具分离消除脏数据(比如杂音)准备自己的声音预处理完工效果参考 不完全原创声明 本人使用了多个第三方软件,并修改了一部分代码使得其可以在PC上训练,如有侵权请联…

看板是什么?使用看板进行任务管理有哪些好处?

看板是一个易于使用的工具,用于可视化和管理工作流程。 它的特点是有一列代表工作流程的各个阶段。看板卡被用来跟踪各个任务和活动在各个阶段的进展情况。 看板的两种主要类型是实体看板和数字看板。实体看板最适合办公室内、同地办公的团队。数字看板更适合远程和…

数据库MySQL学习-数据查询(持续更新中...)

MySQL数据库 MySQL是DBMS软件系统,通过这些系统来维护管理数据库。 DBMS类似于用于和数据库之间的桥梁。 一、安装配置 下载免费的MySQL 社区版,安装后需要下载MySQL workbench vscode phpmyadmin等工具来接入MySQL。 MySQL可以管理多个数据库的&…