news 2026/6/9 20:10:29

Android最简化发布模块到mavenCentral

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android最简化发布模块到mavenCentral

最近折腾jitpack发布,发现他对于项目结构要求比较严格。基本标配就是一个library目录加app,和settings.gradle,gradle这样的配置才行。多模块或者没有模块都比较麻烦。而且之前我遇到过一次,编译等了足足8个小时。

今天研究了mavenCentral,借助神迹github插件,现在已经十分轻松,而且很方便在android studio中操作。直接推荐。

1. 注册

central.sonatype
推荐直接使用github登录即可。官方推荐使用github,能分担他们的服务压力。

2. namespaces

检查是否有Namespaces, 如图:
没有的话,点击Register New Namespace创建。
namespace

3. UserName和Password

登录 Sonatype Central Portal

点击右上角用户头像 →View User Tokens

进入Generate User Token

记录生成的usernamepassword,保存好,后续不可见,后面使用1️⃣。

4. GPG

# 安装 GPG brew install gnupg # 安装 pinentry-mac(用于密码输入) brew install pinentry-mac # 验证安装 gpg --version

也可以选择,自己下载:下载地址

安装完成后在控制台输入gpg --version,即可查看版本号。

生成gpg密钥对:

# 生成密钥(推荐使用 RSA 4096) gpg --full-generate-key

操作(这里最后的passphrase密码,后面有用2️⃣):

请选择您要使用的密钥类型: (1) RSA 和 RSA (2) DSA 和 Elgamal (3) DSA(仅用于签名) (4) RSA(仅用于签名) (9) ECC(签名和加密) (10) ECC(仅用于签名) 您的选择是? 1 RSA 密钥的长度应在 1024 位与 4096 位之间。 您想要使用的密钥长度?(3072) 4096 请设定这个密钥的有效期限。 0 = 密钥永不过期 密钥的有效期限是?(0) 0 真实姓名: Your Name 电子邮件地址: your-email@example.com 注释: Maven Central Deploy Key # 设置一个强密码(passphrase),后续需要使用

查看(丢失了可以重复查看,后面有用3️⃣):

# 列出所有密钥 gpg --list-keys # 列出私钥及 keygrip(用于免密配置) gpg --list-secret-keys --keyid-format LONG ### 输出结果: ---------------------------------- pub rsa4096/123213131423 2026-01-01 [SC] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD1234 uid [ultimate] Your Name <your-email@example.com> sub rsa4096/XXXXXXXXXXXXXXXX 2026-01-01 [E]

上传到公开的密钥服务器(任一成功即可) :

gpg --keyserver keys.openpgp.org --send-keys xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD1234 gpg --keyserver pgp.mit.edu --send-keys xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD1234 gpg --keyserver keyserver.ubuntu.com --send-keys xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD1234

导出(后面有用4️⃣):

gpg --export-secret-keys -o /Documents/xxx/xxx/secring.gpg

5. 配置属性

接下来,完形填空。创建配置文件,并添加上面操作的:1️⃣,2️⃣,3️⃣,4️⃣。其中3️⃣ 这个ID,注意只要最后的8位

touch ~/.gradle/gradle.properties # 1️⃣ mavenCentralUsername=2xxxXx mavenCentralPassword=Sf111111xxxxdxxxxdddxxxK # 2️⃣ signing.password=xxxx # 3️⃣ signing.keyId=abcd1234 # 4️⃣ signing.secretKeyRingFile=/Users/xxx/XXX/secring.gpg

6. 集成模块插件

直接在module的build.gradle中集成:

plugins{...id("com.vanniktech.maven.publish")version"0.35.0"}mavenPublishing{publishToMavenCentral()signAllPublications()}mavenPublishing{coordinates("com.example.mylibrary","library-name","1.0.3")pom{name="My Library"description="A description of what my library does."inceptionYear="2026"url="https://github.com/username/mylibrary/"licenses{license{name="The Apache License, Version 2.0"url="http://www.apache.org/licenses/LICENSE-2.0.txt"distribution="http://www.apache.org/licenses/LICENSE-2.0.txt"}}developers{developer{id="username"name="User Name"url="https://github.com/username/"}}scm{url="https://github.com/username/mylibrary/"connection="scm:git:git://github.com/username/mylibrary.git"developerConnection="scm:git:ssh://git@github.com/username/mylibrary.git"}}}

多个模块的时候,复制这些到其他子模块。修改其他的配置version,name等模块信息。

7. 发布

然后选择模块下的publishToMavenCentral,点击。你不用编译,他自己会编译。

注意这个时候,还没有发布:

再上到publishing。点击发布:

左边变成了· PUBLISHING状态。
等待几分钟。发布成功!

另外

建议在开发中,不要每次有一点修改就去发布。这样白费时间。错了还得修改。在前面发布的时候,不要急着publishToMavenCentral,而是先publishToMavenLocal()

在使用模块的项目中:
配置根目录settings.gradle:
添加本地mavenLocal()和一些镜像站:

dependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{mavenLocal()//追加一个本地查找maven{url'https://maven.aliyun.com/repository/public'}maven{url'https://maven.aliyun.com/repository/google'}maven{url'https://maven.aliyun.com/repository/central'}maven{url'https://repo.huaweicloud.com/repository/maven/'}maven{url'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/'}maven{url'https://mirrors.163.com/maven/repository/maven-public/'}google()mavenCentral()maven{url'https://www.jitpack.io'}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 19:54:42

污染物在土壤-地下水系统中的完整迁移路径:从概念模型构建到风险管控决策——深度解读T/LNSES 004技术指南与重金属/有机物迁移预测全流程,适用于污染场地评估、修复工程、地下水保护

随着我国对土壤环境保护与污染风险管控的日益重视&#xff0c;科学准确地评估污染物在场地环境中的迁移行为与潜在影响范围&#xff0c;已成为土壤污染防治工作的核心环节。《场地土壤污染物迁移路径与范围评估技术指南》&#xff08;T/LNSES 004&#xff09;的发布&#xff0c…

作者头像 李华
网站建设 2026/6/9 19:55:04

新能源知识库(168)钠电和高倍率锂电在短时储能场景的比较

作为AIDC解决方案专家&#xff0c;针对您架构中短时储能&#xff08;通常指分钟级到半小时级&#xff0c;用于支撑算力尖峰或作为发电机启动前的过渡&#xff09;这一环节&#xff0c;高倍率锂电&#xff08;通常指高倍率LFP&#xff09;与钠离子电池&#xff08;Na-ion&#x…

作者头像 李华
网站建设 2026/6/5 15:55:50

基于Actor-Critic(A2C)强化学习RL的四旋翼无人机UAV悬停控制

基于Actor-Critic(A2C)强化学习RL的四旋翼无人机UAV悬停控制 简介&#xff1a;该代码训练了一个优势演员-评论家(A2C)强化学习代理&#xff0c;以控制四旋翼飞行器的电机速度&#xff0c;使其在随机角加速度扰动作用于控制轴&#xff08;俯仰、横滚和偏航&#xff09;的情况下保…

作者头像 李华
网站建设 2026/6/9 3:33:58

vue基于JAVA社区家政服务系统的设计与实现

目录 摘要 开发技术 核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 摘要 随着社会发展和生活节奏加快&#x…

作者头像 李华
网站建设 2026/6/9 20:07:49

中专模具生进大厂攻略:3类核心证书,逆袭2026

证书战略&#xff1a;构建通往大厂的“能力金三角”✅专业基本功扎实✅掌握先进制造技术✅具备持续改进的潜力&#x1f4d0; 一、进大厂必备的8类高价值证书1. 计算机辅助设计&#xff08;CAD&#xff09;绘图员&#xff08;中级&#xff09;二维设计的底线&#xff1a;大厂所有…

作者头像 李华