建设部网站安徽网站建设

广州美巨生物科技有限公司 2026/09/09 17:49:05

最近折腾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'}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

建设银行网站资阳网站建设

实战观察 fwsnort在网络安全领域,fwsnort 是一款强大的工具,它能将 Snort 规则转换为 iptables 规则,从而有效检测和应对各种网络攻击。下面我们通过具体的攻击示例,来深入了解

2026/06/30 11:15:54

容桂网站建设遵义网站建设

Seed-Coder-8B-Base如何自动生成API代码在现代软件开发中,API 是系统间通信的“通用语言”。但每当要实现一个新接口时,开发者往往得重复经历同样的流程&#

2026/06/30 12:22:31

商业网站建设大庆网站建设

Docker清道夫?在极空间NAS上部署自动化清理助手『PruneMate』哈喽小伙伴们好,我是Stark-C~我想绝大多数的NAS用户都和我一样,没事的时候

2026/06/30 14:06:08

建设银行网站摄影网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:开发一个交互式YOLOv11学习工具,功能要求:

2026/06/30 10:22:19

南宁网站建设南通网站建设

Hydro比赛管理系统高效管理完整教程:从零到精通的模块化操作指南【免费下载链接】HydroHydro - Next generation high performance online

2026/06/30 11:36:56

南宁网站建设公司绍兴网站建设

WinCDEmu:彻底告别物理光盘的数字革命【免费下载链接】WinCDEmu项目地址: https://gitcode.com/gh_mirrors/wi/WinCDEmu还在为找不到光

2026/06/30 11:41:27

龙岗网站建设泉州网站建设

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visu

2026/06/30 12:46:32

网站建设合同宁波外贸网站建设

在浩瀚的学术海洋中,一篇扎实、全面、逻辑清晰的“文献综述”是任何研究工作的基石。它不仅是对前人研究成果的系统性梳理,更是确立自身研究价值与创新点的关键环节。然而࿰

2026/06/30 13:16:35

青岛网站建设公司番禺网站建设

关于数据库迁移什么是数据库迁移数据库迁移(Database Migration)是指对数据库结构进行版本控制的过程,它允许开发团队跟踪数据库模式的变更

2026/06/30 10:22:19