如何从AWS CodeArtifact私有仓库下载Gradle插件及配置凭证?
从AWS CodeArtifact私有仓库下载Gradle插件的配置方法
是否可行?
完全可以从AWS CodeArtifact私有仓库下载Gradle插件,只要正确配置仓库地址和凭证,Gradle就能像访问公共仓库一样拉取私有插件。
具体配置步骤
1. 配置插件仓库地址
在项目根目录的settings.gradle(Groovy DSL)或settings.gradle.kts(Kotlin DSL)中,添加CodeArtifact仓库配置,替换占位符为你的实际信息:
Groovy DSL 示例
pluginManagement { repositories { maven { url "https://<domain>-<account-id>.d.codeartifact.<region>.amazonaws.com/maven/<repository-name>/" credentials { username "aws" password System.getenv("CODEARTIFACT_AUTH_TOKEN") } } gradlePluginPortal() // 保留官方仓库作为 fallback } }
Kotlin DSL 示例
pluginManagement { repositories { maven { url = uri("https://<domain>-<account-id>.d.codeartifact.<region>.amazonaws.com/maven/<repository-name>/") credentials { username = "aws" password = providers.environmentVariable("CODEARTIFACT_AUTH_TOKEN").get() } } gradlePluginPortal() } }
2. 获取CodeArtifact授权令牌
使用AWS CLI生成临时授权令牌(有效期12小时),执行以下命令:
aws codeartifact get-authorization-token --domain <domain> --domain-owner <account-id> --region <region> --query authorizationToken --output text
将生成的令牌设置为环境变量:
export CODEARTIFACT_AUTH_TOKEN=<生成的令牌>
3. 全局配置(可选)
如果希望所有本地Gradle项目都使用该私有仓库,可修改~/.gradle/gradle.properties添加令牌:
CODEARTIFACT_AUTH_TOKEN=<你的令牌>
或在~/.gradle/init.gradle中全局配置仓库:
allprojects { buildscript { repositories { maven { url "https://<domain>-<account-id>.d.codeartifact.<region>.amazonaws.com/maven/<repository-name>/" credentials { username "aws" password System.getenv("CODEARTIFACT_AUTH_TOKEN") } } } } }
4. 验证配置
在build.gradle中添加私有仓库中的插件,例如:
plugins { id 'com.example.custom-plugin' version '1.0.0' }
执行gradle tasks命令,若能成功加载插件,说明配置生效。
注意事项
- 授权令牌有效期为12小时,可编写脚本自动刷新并设置环境变量
- 确保AWS CLI已配置具备
codeartifact:GetAuthorizationToken权限的IAM用户/角色 - 若在EC2/ECS等AWS服务中运行Gradle,可通过IAM角色自动获取凭证,无需手动生成令牌
内容的提问来源于stack exchange,提问作者George Jose
相关产品推荐
相关产品推荐

