2014-05-14 63 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

回答