ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何发布Android库到MavenCentral:PinView的publish.gradle流程复盘

如何发布Android库到MavenCentral:PinView的publish.gradle流程复盘 如何发布Android库到MavenCentralPinView的publish.gradle流程复盘【免费下载链接】PinViewA PIN view library for Android. Use to enter PIN/OTP/password etc.项目地址: https://gitcode.com/gh_mirrors/pin/PinView如果你是一个 Android 开发者写了一个好用的开源库却不知道如何发布Android库到MavenCentral让全世界的人都能通过一行依赖引入那么这篇文章就是为你准备的。本文以开源 PIN 输入库PinView为例完整复盘它是如何通过publish.gradle从本地项目一步步发布到 MavenCentral 的。整个流程包括插件配置、签名信息加载、Javadoc 生成、POM 元数据填写、仓库上传等关键环节看懂之后你的库也能轻松完成同样的发布。先认识一下 PinView 这个库PinView 是一个专为 Android 设计的 PIN/OTP/密码输入组件继承自EditText所以原生输入框的能力它全都具备。开发者可以用它快速搭建验证码输入、支付密码、短信 OTP 等场景还支持矩形、下划线、无边框三种视图样式以及光标颜色、输入格数量、动画等丰富的自定义属性。核心源码位于 pinview/src/main/java/com/chaos/view/PinView.java组件对外提供了一整套可配置的 XML 属性和 Java API。在发布到 MavenCentral 之前PinView 曾托管在 JCenter 上。随着 JCenter 宣布停止服务作者不得不将坐标迁移到 MavenCentral由com.chaos.view:pinview变为io.github.chaosleung:pinview。这种仓库迁移的经历正是很多 Android 库开发者都会遇到的现实问题。发布前的准备工作账号、密钥与本地配置发布 Android 库到 MavenCentral 不是写几行代码就能完成的前置条件必须齐全注册 Sonatype 账号申请一个 OSSRHOSS Repository Hosting账号用于上传和审核构件。生成 GPG 密钥MavenCentral 要求所有上传的构件必须有数字签名你需要用 GPG 生成密钥对并记住 keyId、密码和密钥环文件路径。创建 local.properties把签名信息写在项目根目录的local.properties里而不是硬编码进构建脚本这样既安全又便于多人协作。PinView 的 pinview/publish.gradle 在文件开头就用ext[]声明了signing.keyId、signing.password、signing.secretKeyRingFile、ossrhUsername、ossrhPassword这几个占位变量随后自动读取根目录的local.properties并将属性注入到ext中实现敏感信息的解耦加载。最核心的 publish.gradle 发布流程拆解发布脚本的全部逻辑集中在 pinview/publish.gradle 这一个文件里通过pinview/build.gradle末尾的apply from: publish.gradle引入。整个流程可以拆成六个环节1. 引入发布与签名插件脚本开头先应用两个 Gradle 插件maven-publish负责生成构件和上传signing负责给构件做 GPG 签名。这是所有发布流程的基础。2. 定义坐标与版本号通过group io.github.chaosleung和version 1.4.4定义了仓库坐标再结合 artifactIdpinview就得到了我们在依赖中看到的完整坐标io.github.chaosleung:pinview:1.4.4。3. 为每个构建变体生成 Javadoc 与 Sources 包脚本遍历android.libraryVariants为每个变体创建Javadoc任务并拼接 Android 的android.jar作为 classpath避免文档生成时报找不到 Android 类的错误。紧接着把 Javadoc 和源码打包成javadoc与sources两种 jar且只把 release 变体的产物附加到最终发布物上。4. 在 afterEvaluate 中组装 publicationGradle 的afterEvaluate时机非常关键它确保 Android 插件的配置先执行完毕。这里通过from components.release把 release 变体的 AAR 作为主构件同时填入完整的 POM 信息包括库名、描述、Apache 2.0 许可证、SCM 仓库地址以及开发者信息。完善的 POM 元数据是顺利通过 MavenCentral 审核的重要条件。5. 配置 Sonatype 上传仓库脚本为仓库命名为sonatype并根据版本号是否以SNAPSHOT结尾自动选择快照仓库或正式发布仓库地址同时用之前加载的ossrhUsername和ossrhPassword提供认证凭据。6. 对整个发布产物签名最后一步signing { sign publishing.publications }会对所有发布物执行 GPG 签名。签名文件会随 AAR、Javadoc、Sources 一起上传这也是 MavenCentral 的硬性要求。一键发布命令与常见的坑配置完成后发布 Android 库到 MavenCentral 的核心操作其实只有一条命令./gradlew publish。脚本会自动完成打包、签名、上传到 Sonatype 的 staging 仓库之后再到 OSSRH 后台执行Close和Release操作构件就会正式进入 MavenCentral。复盘这个项目时有几个坑值得新手注意版本号一致性上传构件的版本号一定要与代码仓库的 tag 保持一致否则后续排查问题会非常痛苦。Gradle 版本兼容该项目使用 Gradle 6.1.1见 gradle/wrapper/gradle-wrapper.properties不同 Gradle 版本对maven-publish的 API 支持有差异升级时要留意 API 变化。secret 文件泄漏local.properties里存放了 GPG 密钥和 Sonatype 密码务必加入.gitignore绝不能提交到仓库。Javadoc 生成失败Android 项目里常见BuildConfig.java、R.java报错脚本通过exclude排除这两类生成文件来解决值得借鉴。发布完成后如何验证与使用发布成功后任何项目只要在repositories中加入mavenCentral()再添加一行依赖implementation io.github.chaosleung:pinview:1.4.4就能直接使用这个 PIN 输入组件具体用法可以参考 README.md 中的说明。总结通过复盘 PinView 的 publish.gradle 发布流程可以看到一个成熟的 Android 库发布方案其实并不复杂maven-publish 插件负责打包上传signing 插件负责签名local.properties 负责存放敏感信息POM 元数据负责通过审核。把这套流程吃透你就能把自己的 Android 库也顺利发布到 MavenCentral让更多开发者通过一行依赖用上你的作品。如果你正准备尝试发布自己的第一个库不妨直接从这份发布脚本开始改造能少走很多弯路。【免费下载链接】PinViewA PIN view library for Android. Use to enter PIN/OTP/password etc.项目地址: https://gitcode.com/gh_mirrors/pin/PinView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表