建设部网站安徽网站建设

青岛鼎盛优诺高科新能源技术有限公司 2026/09/09 17:52:49

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

免费建设网站嘉兴网站建设

3dsconv终极指南:轻松转换3DS游戏格式的完整教程【免费下载链接】3dsconvPython script to convert Nintendo 3DS CCI (".c

2026/06/30 10:26:50

成都网站建设公司东莞网站建设公司

2026年网络安全人员薪酬趋势一、网络安全行业为何成“香饽饽”?最近和几个朋友聊起职业规划,发现一个有趣的现象:不管原来是程序员、运维还是产品经理࿰

2026/06/30 13:28:36

沈阳网站建设石家庄网站建设

Qwen3-14B本地部署实战:打造企业级私有化AI引擎在金融合规部门的深夜会议室里,法务团队正为一份跨国并购合同焦头烂额——328页的PDF文档中藏着十几个关键风险点&#

2026/06/30 11:15:24

西安网站建设公司汕头网站建设

在光伏电站开发领域,传统设计模式的痛点早已凸显:人工测量耗时费力,二维图纸难以还原场地实况,数据偏差动辄引发发电量预测失准、施工返工等连锁问题&

2026/06/30 12:19:30

上海外贸网站建设深圳网站建设论坛

第一章:PHP低代码平台权限管理概述在现代Web应用开发中,PHP低代码平台因其快速构建、灵活配置和高效迭代的特性,被广泛应用于企业级系统开发。权限管理作为系

2026/06/30 13:46:37

莱芜网站建设公司建设网站

如何快速搭建Kodi 115网盘原码播放环境?完整插件配置指南【免费下载链接】115proxy-for-kodi115原码播放服务Kodi插件项目地址: https://gitcode.

2026/06/30 11:44:57

网站建设教程开县网站建设

你是否曾经遇到过这样的困境:阅读外文资料时,满屏的陌生文字让你无从下手?观看外语视频时,精彩内容因为语言障碍而变得索然无味?或者在

2026/06/30 10:43:21

网站建设 北京建设集团网站

目录介绍类型selectpollepoll介绍什么是IO多路复用?IO多路复用是一种高效的IO处理技术,它允许单个线程同时监控多个文件描述符(如网络连接、文件

2026/06/30 13:44:37

青岛网站建设专业的网站建设

Shell脚本入门:让重复工作自动化每天登服务器敲一堆重复的命令?写成脚本,一键执行,省时省力。今天教你Shell脚本入门,看完就

2026/06/30 10:56:23

宁波网站建设公司品牌网站建设公司

第一章:Shell脚本的基本语法和命令Shell脚本是Linux/Unix系统中自动化任务的核心工具,通过编写可执行的文本文件,用户能够组合命令、控制流程并处

2026/06/30 10:25:50