1
我有一个项目,其中作曲家用于安装Nette Framework和一个私人包在私人作曲家库中。作曲家是否优先考虑私人包裹的要求?
项目的composer.json:
...
"require": {
"php": ">= 5.3.7",
"nette/nette": "2.1.*",
"myrepo/private-package": "*"
},
"minimum-stability": "dev",
"repositories": [
{
"type": "composer",
"url": "http://myrepo.org"
}
]
...
私人包的composer.json:
...
"require": {
"php": ">= 5.3.7",
"nette/nette": "2.2.*"
},
...
正如你可以看到该项目需要•奈特2.1.*
。然而,私人包裹需要Nette版本2.2.*
。
如果我运行composer install
,作曲家安装2.2.*
版本的Nette。这不符合项目的composer.json(需要2.1.*
)。
我知道这两项要求都无法实现。但为什么作曲家不打印出错误呢?私人存储库是否具有某种优先级?
您确定要安装最新的“dev-master”提交吗?该分支曾经是版本2.1.x,并且如果您的本地composer.lock引用了2.2以前的开发时间的提交,则版本要求将被满足而不会有任何投诉。但这也是为什么在Composer中使用分支并不是最好的想法的另一个例子。 – Sven
确实这是最近的提交。我总是删除composer.lock,整个供应商文件夹和作曲家的缓存,但这仍然发生。 – tsusanka
顺便说一句,如果我将第二个需求更改为2.2。*它仍然用来代替项目的2.1。*。我会相应地编辑问题,这比'dev-master'更好。 – tsusanka