You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何私有托管.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:55:18