如何私有托管.aar库并通过Gradle项目安全访问?
私有AAR库远程托管与Android项目集成方案
免费私有托管方案
1. GitHub Packages
GitHub提供免费私有包仓库(每月500MB存储、1GB带宽额度,超出后需付费),支持Maven格式包托管:
上传AAR步骤:
- 在存放
test.aar的模块build.gradle中配置Maven发布插件:
plugins { id 'maven-publish' } publishing { publications { maven(MavenPublication) { groupId = 'io.test-lib' artifactId = 'test-lib' version = '1.0.0' artifact file('test.aar') // 指向你的AAR文件路径 } } repositories { maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/你的GitHub用户名/仓库名") credentials { username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_USERNAME") password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN") } } } }
- 生成GitHub个人访问令牌(PAT):在账号设置的「Developer settings」中创建,勾选
read:packages、write:packages权限。 - 执行Gradle任务
publish,完成AAR上传。
Android项目引用配置:
- 在项目根目录
settings.gradle(Gradle 7+推荐)中添加仓库配置:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url = uri("https://maven.pkg.github.com/你的GitHub用户名/仓库名") credentials { username = "你的GitHub用户名" password = "生成的PAT令牌" } } } }
- 旧版项目可在根
build.gradle中配置:
allprojects { repositories { google() mavenCentral() maven { url "https://maven.pkg.github.com/你的GitHub用户名/仓库名" credentials { username = "你的GitHub用户名" password = "生成的PAT令牌" } } } }
- 最后在app模块
build.gradle中添加依赖:
dependencies { implementation "io.test-lib:test-lib:1.0.0" }
2. GitLab Packages
GitLab免费私有仓库提供每月10GB存储、10GB带宽,支持Maven包托管:
上传AAR步骤:
- 模块
build.gradle配置Maven发布:
plugins { id 'maven-publish' } publishing { publications { maven(MavenPublication) { groupId = 'io.test-lib' artifactId = 'test-lib' version = '1.0.0' artifact file('test.aar') } } repositories { maven { url = uri("https://gitlab.com/api/v4/projects/你的项目ID/packages/maven") credentials { username = "你的GitLab用户名" password = "GitLab个人访问令牌(需勾选api权限)" } } } }
- 生成GitLab个人访问令牌:在账号设置的「Access Tokens」中创建,勾选
api权限。 - 执行
publish任务完成上传。
Android项目引用配置:
- 根
settings.gradle添加仓库:
dependencyResolutionManagement { repositories { google() mavenCentral() maven { url = uri("https://gitlab.com/api/v4/projects/你的项目ID/packages/maven") credentials { username = "你的GitLab用户名" password = "GitLab访问令牌" } } } }
- app模块添加依赖格式同前。
低成本付费方案
若免费额度不足,可选择以下低成本服务:
1. JFrog Artifactory Cloud
入门版每月约5美元,提供无限带宽、1GB存储,支持私有Maven仓库:
- 创建私有Maven仓库后,可通过UI直接上传
test.aar,或通过Maven插件发布。 - 生成访问令牌,在Android项目中配置仓库URL和凭证即可引用依赖。
2. AWS CodeArtifact
按存储和带宽计费,成本较低,适合已有AWS服务的用户:
- 创建私有Maven域和仓库,通过Maven插件或CLI上传AAR。
- 配置项目仓库凭证(使用AWS IAM生成的访问密钥),即可引用依赖。
注意事项
- 凭证不要硬编码到代码中,建议通过系统环境变量或
local.properties文件读取(例如在local.properties中添加GITHUB_TOKEN=xxx,再在Gradle中通过properties.getProperty("GITHUB_TOKEN")获取),避免提交到版本控制。 - 不同平台的令牌权限需配置正确,否则会出现上传或访问失败的问题。
内容的提问来源于stack exchange,提问作者Le D
相关产品推荐
相关产品推荐

