我公司的Gitlab上有一些软件包。我想请求这些包的特定版本,但每次尝试时,composer都会下载主分支的最新提交。
composer.json:
{
"name" : "MyProject",
"require" : {
"user/project" : "v0.5.0"
},
"type" : "project",
"repositories" : [
{
"url" : "git@gitlab.XXXX.fr:user/project.git",
"type" : "vcs"
}
],
"config" : {
"vendor-dir" : "private/class"
}
}
我的包的存储库的结构:
当我执行“composer安装”时:
使用包信息加载composer存储库
安装依赖项(包括需要开发人员)
分析了69个包以解决依赖关系
分析了67条规则以解决依赖关系
>
克隆f15600a1
它只下载最后一次提交。
如何配置作曲家。我的项目的json文件是否使用特定标记?
如何要求特定的Git标记?
将版本要求更改为dev-master
,然后是散列#
和Git标记名称,例如v0.5.0
,如下所示:
"require": {
"vendor/package": "dev-master#v0.5.0"
}
如何要求特定的Git提交?
将版本要求更改为dev-master,然后是散列#
和Git提交引用,例如dd6ed3c8
,如下所示:
"require": {
"vendor/package": "dev-master#dd6ed3c8"
}
参考:https://getcomposer.org/doc/04-schema.md#package-链接
定义自己的包并设置版本和引用
使用“类型”:“vcs”
的存储库的替代方法是在存储库内定义一个自定义包“类型”:“包”
,并使用引用。
引用可以是Git提交哈希,也可以是标记或分支名称,如origin/master
。
这将把version
绑定到特定的提交引用
,在本例中是dd6ed3c8。
"repositories": [
# ...
{
"type": "package",
"package": {
"name": "vendor/package",
"version": "v0.5.0",
"source": {
"url": "git@gitlab.server.com:vendor/project.git",
"type": "git",
"reference": "dd6ed3c8"
}
}
}
]
按git标签拖动:
{
"repositories": [
{
"type": "git",
"url": "https://gitlab.xxx.com/some/repo.git"
}
],
"require": {
"some/repo": "1.0.2"
}
}
按最新git提交:
{
"repositories": [
{
"type": "git",
"url": "https://gitlab.xxx.com/some/repo.git"
}
],
"require": {
"some/repo": "dev-master"
}
}
通过特定的git提交拉:
{
"repositories": [
{
"type": "git",
"url": "https://gitlab.xxx.com/some/repo.git"
}
],
"require": {
"some/repo": "dev-master#68696f39"
}
}
通过Composer Cli添加仓库,并拉最新的git提交:
composer config repositories.repo git https://gitlab.xxx.com/some/repo.git
composer require "some/repo:dev-master"
composer update
要需要一个特定的分支,你也可以像这样仅仅dev-
分支名称:
"require": {
"user/project" : "dev-my-branch"
},