返回

将Android aar包发布到Maven Central的一站式方案

Android

将 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////