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

如何将Artifactory用作Packagist PHP Composer依赖的缓存代理

实现Artifactory全量Composer依赖镜像的步骤

你不需要手动逐个维护依赖条目,Artifactory的Composer远程仓库默认支持自动缓存首次代理拉取的所有依赖,结合Composer自带的能力就能一次性完成所有直接、间接依赖的镜像同步:

1. 确认全量依赖信息

你项目根目录下的composer.lock已经完整记录了所有直接、间接依赖的精确版本信息,无需额外手动梳理。如果你需要导出依赖清单做核对,可以执行以下命令:

composer show --locked --name-only > all-dependencies.txt

生成的all-dependencies.txt文件中会列出当前项目用到的所有依赖包名。

2. 批量触发Artifactory缓存

方案1:通用方案(适配所有Artifactory版本)

  • 先配置本地Composer全局源为你已经创建好的Artifactory Composer远程仓库:
    composer config -g repos.packagist composer https://<你的Artifactory域名>/artifactory/api/composer/<你的远程仓库名称>
    
  • 清空本地已有的Composer缓存,避免本地已有缓存跳过代理请求:
    composer clear-cache
    
  • 新建一个空白目录,将原项目的composer.json和composer.lock复制到该目录下,执行安装命令触发全量依赖拉取:
    composer install --no-scripts --no-autoloader
    
    该命令仅下载依赖包、不会执行项目安装脚本也不会生成自动加载文件,所有依赖请求都会走Artifactory代理,Artifactory会自动将拉取到的依赖永久缓存到本地。

方案2:企业版Artifactory专用方案

如果你使用的是企业版Artifactory,可以通过JFrog CLI批量触发缓存,无需本地下载依赖:

  • 安装并配置好JFrog CLI和Artifactory实例的连通性
  • 遍历第一步导出的all-dependencies.txt中的所有包名,执行以下命令触发远程缓存:
    jfrog rt composer-install --repo <你的远程仓库名称>
    

3. 验证缓存结果

  • 登录Artifactory管理后台,进入对应的Composer远程仓库的「工件浏览器」页面,即可看到所有已经成功缓存的依赖包
  • 用一台未拉取过该项目依赖的设备,配置好Artifactory Composer源后执行composer install,确认所有依赖都从Artifactory拉取、无Packagist请求即可。

注意事项

  • 如果你的项目有多个分支、对应不同的composer.lock版本,将所有分支的lock文件按上述步骤执行一次,即可覆盖所有用到的依赖版本
  • 你可以根据需要调整Artifactory远程仓库的缓存过期策略,默认配置下缓存的依赖会永久保留,不会重复请求Packagist
  • 如需强制所有依赖都走Artifactory,只需在本地Composer配置中移除所有其他源,仅保留Artifactory的Composer源即可,不会出现漏缓存的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:54:02