最近,我一直在做很多关于Composer最小稳定性的研究。我进入官方文档并阅读最小稳定性变化。但是,即使如此,我也无法让作曲家安装依赖项。
我有root包和其他两个,我们称之为packageA和packageB。 当我在root包中需要packageB时,packageB必须随身携带packageA,但是当我收到错误时就是这样。
您的要求无法解析为可安装的软件包。
问题1
- packageB / packageB dev-master的安装请求 - >可以通过packageA / packageA [dev-master]来满足。
- packageB / packageB dev-master需要packageA / packageA dev-master - >找不到匹配的包。
潜在原因:
- 包名称中的类型
- 根据您的最小稳定性设置,包装不具备足够稳定的版本。
我的composer.json
的root包短版本{ "require": { "packageB/packageB": "dev-master" }, "repositories": [ { "type": "vcs", "url": "git@bitbucket.org:packageB/packageB.git" } ], "minimum-stability": "dev" }
我的composer.json
的packageA简短版本{ "require": { }, "minimum-stability": "dev" }
我的composer.json的packageB短版本
{ "require": { "packageA/packageA": "dev-master" }, "repositories": [ { "type": "vcs", "url": "git@bitbucket.org:packageA/packageA.git" } ], "minimum-stability": "dev" }
需要packageA的root必需packageB,但是packageB说在匹配条件下找不到packageA。
答案 0 :(得分:12)
这就是我的所作所为。
首先:
我删除了包A和B的composer.json中的最小稳定性字段;对于最小稳定性是仅有根的字段。如[link] https://getcomposer.org/doc/04-schema.md#minimum-stability)中所述。
但真正的解决方案是,当我使用自己的私有软件包时,我使用bitbucket来托管这两个软件包,将repos指向我的composer.json里面的“repositories”字段,在根作曲家里面packageB作曲家。
如本link所述,作曲家的根包必须包含存储库字段内所有存储库的链接。
就像这样:
我的composer.json
的root包短版本{
"require": {
"packageB/packageB": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "git@bitbucket.org:packageB/packageB.git"
},
{
"type": "vcs",
"url": "git@bitbucket.org:packageA/packageA.git"
}
],
"minimum-stability": "dev"
}
我的composer.json
的packageA简短版本{
"require": {
}
}
我的composer.json的packageB短版本
{
"require": {
"packageA/packageA": "dev-master"
}
}
答案 1 :(得分:1)
将最小稳定性改为开发稳定性,如:
"minimum-stability": "dev",