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

如何为AWS Code Artifact配置自定义上游仓库源?

AWS Code Artifact 自定义Maven上游源(如Jitpack)的实现方案

AWS Code Artifact目前不支持直接添加自定义URL的外部仓库作为上游源,不管是控制台操作还是associate-external-connection命令,都只能用官方预设的那7个外部源。要实现用它缓存Jitpack这类自定义Maven仓库的依赖,可以通过以下代理方案解决:

步骤1:创建无上游的Code Artifact Maven仓库

先在Code Artifact里建一个没有预设上游的空白Maven仓库,用来缓存自定义仓库的依赖:

  • CLI命令方式:
aws codeartifact create-repository --domain <你的CodeArtifact域名> --domain-owner <AWS账号ID> --repository <自定义仓库名称> --description "缓存Jitpack等自定义Maven仓库的代理仓库"
  • 控制台方式:进入Code Artifact控制台,创建仓库时跳过“上游源”选择,直接完成创建。

步骤2:配置构建工具,让Code Artifact作为自定义仓库的代理

以Gradle为例,在项目的build.gradle(或settings.gradle)里配置仓库顺序,优先从Code Artifact拉取,找不到再从Jitpack拉取——Code Artifact会自动缓存从Jitpack拉取到的依赖,后续请求直接走缓存:

repositories {
    // 先访问Code Artifact仓库
    maven {
        url "https://<你的域名>-<账号ID>.d.codeartifact.<AWS区域>.amazonaws.com/maven/<自定义仓库名称>/"
        credentials {
            username = "aws"
            password = awsCodeArtifactToken // 需提前获取Code Artifact认证令牌
        }
    }
    // 当Code Artifact无对应依赖时,从Jitpack拉取
    maven { url "https://jitpack.io" }
}

关于认证令牌的优化

可以通过脚本自动获取Code Artifact的认证令牌,避免手动更新。比如在Gradle里添加一个任务:

task getCodeArtifactToken {
    doLast {
        def tokenProcess = "aws codeartifact get-authorization-token --domain <你的CodeArtifact域名> --domain-owner <AWS账号ID> --query authorizationToken --output text".execute()
        tokenProcess.waitFor()
        project.ext.awsCodeArtifactToken = tokenProcess.in.text.trim()
    }
}
// 编译任务执行前先获取令牌
tasks.withType(JavaCompile).configureEach {
    dependsOn getCodeArtifactToken
}

协议说明

因为是Maven仓库场景,全程使用HTTPS协议即可——Code Artifact本身通过HTTPS提供服务,自定义Maven仓库(如Jitpack)也支持HTTPS,既符合Maven的标准访问方式,也能保证依赖传输的安全性。

内容的提问来源于stack exchange,提问作者Dragas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:10:26