我在使用特定分支作为项目的依赖性方面遇到了一些麻烦。
我有一个repofityry,我将称为repositoryA
,这是我正在使用的项目,而repositoryB
是repositoryA
依赖的另一个存储库。
但是,我在repositoryB
中有一个特定的分支" 1.0",我想为作曲家指定。
我在repositoryA
中尝试的是在Composer.json中指定以下要求(如每行都在不同的尝试中,而不是在同一文件/尝试中):
// ...
"my-vendor/repositoryB": "1.0-dev",
"my-vendor/repositoryB": "1.0.x-dev",
"my-vendor/repositoryB": "dev-1.0",
"my-vendor/repositoryB": "dev-1.0.x",
"my-vendor/repositoryB": "1.0",
"my-vendor/repositoryB": "1.0.x",
// ...
当我尝试设置这些约束时,我收到的错误消息是:
The requested package my-vendor/repositoryB 1.0.x-dev exists as
my-vendor/repositoryB[dev-master] but these are rejected by your constraint.
在搜索了此问题之后,我似乎需要一个" 1.0"分支的别名才能起作用,因此我还尝试将以下内容添加到repositoryB
中的copos.json:
//...
"extra": {
"branch-alias": {
"1.0-dev": "1.0.x-dev"
}
}
//...
我对此的工作方式有什么误解?
我找到了一个解决方案:
事实证明,我可以通过在运行composer update
之前先将composer.lock
中的分支更新为1.0.x-dev
。
您需要标记分支并在作曲家中使用此标签。在这种情况下,无需使用Branch-Alias Composer功能。
如果您的分支命名为 1.0
,则1.0.x-dev
的约束应起作用(另请参见分支上的文档)。如果它不起作用,那么您需要告诉我们哪个错误作曲家正在返回,因为如果您不向我们提供所有相关信息,我们将无法为您提供帮助。