使用 –repository-url 可指定私有仓库创建项目,如:composer create-project –repository-url=仓库地址 包名 目录版本,适用于 gitLab 等私有源,需确保 URL 正确并配置认证,该参数仅对当前命令生效,后续依赖需在 composer.json 中声明 repositories。

使用 composer create-project 命令时,若想从指定的私有或自定义仓库拉取项目,可以通过 –repository-url 参数来设置仓库地址。这个方法适用于你需要从非 Packagist 官方源创建项目的情况,比如公司内部私有包、测试镜像或 fork 的项目仓库。
1. 基本语法
命令的基本结构如下:
composer create-project [选项] [--repository-url=仓库URL] 包名 目标目录 版本
其中:
- 包名:你要创建项目的 Composer 包名称,如
monolog/monolog或私有包mycompany/myproject - 目标目录(可选):项目创建的本地文件夹名称
- 版本(可选):指定版本号,如
dev-main、^2.0 - –repository-url:指定自定义仓库的 URL,Composer 会从此源查找并下载包
2. 实际使用示例
假设你有一个私有 gitlab 仓库,通过 Composer 镜像服务提供支持,地址为:https://gitlab.com/api/v4/group/123456/-/packages/composer
你想从该仓库创建一个项目:
composer create-project --repository-url=https://gitlab.com/api/v4/group/123456/-/packages/composer mygroup/myapp myapp-project
Composer 会:
- 临时将此 URL 添加为当前命令的仓库源
- 在该仓库中查找
mygroup/myapp包 - 下载并创建项目到
myapp-project目录
3. 支持的仓库类型
–repository-url 可指向不同类型的 Composer 仓库:
- Composer 类型:标准的
composer.json索引仓库,如 Satis、Skelton、Artifactory - VCS 类型:Git 仓库地址(需用完整对象配置,一般不直接用于 –repository-url)
- PEAR 类型:已过时,极少使用
最常见的是 Composer 类型 的私有源,URL 指向其 packages.json 所在位置。
4. 注意事项
- 该参数只对当前命令生效,不会修改全局
composer.json - 如果私有仓库需要认证,应提前在
auth.json中配置 Token 或用户名密码 - 确保仓库 URL 正确返回有效的 JSON 格式包信息,否则会报错 “Could not find package”
- 若项目依赖也来自同一私有源,建议在项目根目录的
composer.json中显式声明repositories
例如,在执行命令后,项目中的 composer.json 可手动添加:
"repositories": [ { "type": "composer", "url": "https://your-private-repo.example.com" } ]
以确保后续 composer install 能正常运行。
基本上就这些。只要仓库可用且配置正确,–repository-url 是快速从指定源创建项目的便捷方式。


