2014-05-14 32 views
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.*)。

我知道这两项要求都无法实现。但为什么作曲家不打印出错误呢?私人存储库是否具有某种优先级?

+0

您确定要安装最新的“dev-master”提交吗?该分支曾经是版本2.1.x,并且如果您的本地composer.lock引用了2.2以前的开发时间的提交,则版本要求将被满足而不会有任何投诉。但这也是为什么在Composer中使用分支并不是最好的想法的另一个例子。 – Sven

+0

确实这是最近的提交。我总是删除composer.lock,整个供应商文件夹和作曲家的缓存,但这仍然发生。 – tsusanka

+0

顺便说一句,如果我将第二个需求更改为2.2。*它仍然用来代替项目的2.1。*。我会相应地编辑问题,这比'dev-master'更好。 – tsusanka

回答