首先,有一些相关文章并不完全适合我的问题。
还有更多
我有一个Symfony项目,其中包含一些私有软件包。 这些被vcs引用:
"repositories": [
{
"type": "vcs",
"url": "git@aaaaa.git"
},
{
"type": "vcs",
"url": "git@xxxxx.git"
},
{
"type": "vcs",
"url": "git@yyyyy.git"
}
],
这像预期的那样工作。但是,私有包yyyy引用了另一个私有包(我们称其为sub-yyyy),在包composer.json文件中vcs类型也引用了该私有包。
如果我运行composer安装,它将失败并显示以下消息:
问题1 -yyyy-> yyyy的安装请求]。 -yyyy需要subyyyy ^ 1.0.0->找不到匹配的软件包。
潜在原因:
- 包裹名称中的错字
- 根据最小稳定性设置,该软件包没有足够稳定的版本,请参见 https://getcomposer.org/doc/04-schema.md#minimum-stability了解更多 详细信息。
- 这是一个私人包裹,您忘了添加自定义存储库来找到它
由v1.0.0标记的私有软件包(sub-yyyy)ist,如果安装在主项目的composer.json文件中,则可以安装。
主项目的composer.json(必须切除):
{
"name": "main/project",
"license": "proprietary",
"type": "project",
"prefer-stable": true,
"repositories": [
{
"type": "vcs",
"url": "git@aaaaa.git"
},
{
"type": "vcs",
"url": "git@xxxxx.git"
},
{
"type": "vcs",
"url": "git@yyyyy.git"
}
],
}
yyyy软件包的composer.json:
{
"name": "yyyy",
"type": "symfony-bundle",
"require": {
"sub-yyyy": "^1.0.0"
},
"repositories": [
{
"type": "vcs",
"url": "git@sub-yyyy.git"
}
],
"minimum-stability": "dev",
}
在安装引用yyyy
的{{1}}软件包时是否有解决此问题的想法?
答案 0 :(得分:3)
您必须在主项目中将存储库条目添加到软件包sub-yyyy
中,因为依赖项不能传递。
来自docs
存储库不是递归解析的。您只能将它们添加到 您的主要composer.json。依赖项的存储库声明 composer.jsons被忽略。
您的composer.json
主项目应该看起来像
{
"name": "main/project",
"license": "proprietary",
"type": "project",
"prefer-stable": true,
"repositories": [
{
"type": "vcs",
"url": "git@aaaaa.git"
},
{
"type": "vcs",
"url": "git@xxxxx.git"
},
{
"type": "vcs",
"url": "git@yyyyy.git"
},
{
"type": "vcs",
"url": "git@sub-yyyy.git"
}
]
}