将Android aar包发布到Maven Central的一站式方案
2024-02-18 13:45:00
将 Android aar 包发布到 Maven Central 的详细指南
越来越多的 Android 开源库倾向于将其发布到 Maven Central,因为它提供了许多优势,包括一键获取依赖、版本管理和安全性。本文将深入探讨如何将 Android aar 包发布到 Maven Central,同时重点介绍使用 GPG 签名、创建发布脚本以及提供一些有用的提示和建议。
前提条件
在开始发布过程之前,请确保满足以下前提条件:
- 已安装 Java 开发工具包 (JDK)
- 已安装 Maven
- 已安装 GPG 工具
- 已创建 Maven Central 账户
发布流程
发布过程主要分为以下步骤:
1. 创建 GPG 密钥对
GPG 密钥对用于对 aar 包进行签名,以确保其安全。
1.1 安装 GPG 工具
在 macOS 中,可以通过以下命令安装 GPG 工具:
brew install gpg
1.2 生成 GPG 密钥对
要生成 GPG 密钥对,请执行以下命令:
gpg --generate-key
在生成密钥对的过程中,系统会要求你输入一些信息,例如你的姓名、电子邮件地址和密码。
2. 签名 aar 包
aar 包的签名需要使用 GPG 密钥对。
2.1 导出 GPG 公钥
需要将 GPG 公钥导出到文件中,以便在发布脚本中使用。
gpg --export --armor --output <public-key-file>
2.2 签名 aar 包
可以使用以下命令对 aar 包进行签名:
gpg --detach-sign --armor --output <signature-file> <aar-file>
3. 创建发布脚本
发布脚本用于自动化发布过程。
#!/bin/bash
# 设置变量
aarFile=<aar-file>
signatureFile=<signature-file>
mavenCentralUsername=<maven-central-username>
mavenCentralPassword=<maven-central-password>
# 登录到 Maven Central
mvn deploy:deploy-file \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=aar \
-Dfile=$aarFile \
-DpomFile=<pom-file> \
-Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ \
-DrepositoryId=sonatype-nexus-staging \
-Dusername=$mavenCentralUsername \
-Dpassword=$mavenCentralPassword
# 签名发布文件
gpg --detach-sign --armor --output $signatureFile $aarFile
# 上传签名文件到 Maven Central
mvn gpg:sign-and-deploy-file \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=aar \
-Dfile=$signatureFile \
-Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ \
-DrepositoryId=sonatype-nexus-staging \
-Dusername=$mavenCentralUsername \
-Dpassword=$mavenCentralPassword
# 完成发布
mvn nexus-staging:close \
-DnexusUrl=https://oss.sonatype.org/ \
-Dusername=$mavenCentralUsername \
-Dpassword=$mavenCentralPassword
# 发布到 Maven Central
mvn nexus-staging:release \
-DnexusUrl=https://oss.sonatype.org/ \
-Dusername=$mavenCentralUsername \
-Dpassword=$mavenCentralPassword
4. 执行发布脚本
bash <script-file>
5. 验证发布结果
发布完成后,可以通过以下命令验证发布结果:
mvn deploy:check
如果发布成功,你应该会看到以下输出:
[INFO] Deploy succeeded: all artifacts deployed successfully
提示和建议
- 使用签名的发布文件,以确保 aar 包的完整性。
- 仔细检查发布脚本中的变量,以避免任何错误。
- 在发布之前,请使用模拟仓库来测试你的发布脚本。
- 使用 Maven 中央的 staging 机制,在发布到生产仓库之前先进行测试。
- 保持你的 GPG 密钥安全,并妥善备份。
常见问题解答
1. 如何解决 Maven Central 发布期间的 401 错误?
答: 确保你已使用正确的 Maven Central 用户名和密码进行身份验证。
2. 为什么我的 aar 包在 Maven Central 中不可见?
答: 检查发布脚本中的 groupId、artifactId 和 version,确保它们与你的 aar 包相匹配。
3. 如何更新已发布的 aar 包?
答: 使用相同的 groupId、artifactId 和较高的版本号发布新 aar 包,然后重新运行发布脚本。
4. 如何撤销 Maven Central 中的 aar 包发布?
答: 使用 Maven 中央的 staging 机制,标记发布为关闭,然后使用 nexus-staging:purge 插件将其从 staging 仓库中删除。
5. Maven Central 发布后在哪里可以找到我的 aar 包?
答: 已发布的 aar 包可以在 Maven Central 的仓库中找到,路径为:https://repo1.maven.org/maven2/