2017-06-15 67 views
0

我在本地git服務器中創建了一個新的Symfony包,它很好地工作。我使用它在一個新的symfony項目,導入使用Composer中的項目vendor\Company\AppBundle捆綁它依賴於外部包,所以我在包的根做了一個composer.json文件:symfony包中的composer.json

{ 
    "name": "Company/AppBundle", 
    "description": "Application resources", 
    "type": "symfony-bundle", 
    "license": [ 
    "proprietary" 
    ], 
    "require": { 
    "jms/metadata": "~1.1" 
    } 
} 

現在的我d期望composer update得到jms/metadata包,但它沒有。

我導入Company/AppBundle以下列方式:

"repositories": [ 
    { 
     "type": "package", 
     "package": { 
      "name": "Company/AppBundle", 
      "version": "2.1.2", 
      "source": { 
       "url": "git://github.com/guillaumepotier/parsley.js.git", 
       "type": "git", 
       "reference": "2.1.2" 
      } 
     } 
    } 
], 
"require": { 
    "Company/AppBundle": "*", 
} 

composer list --tree確實顯示Company/AppBundle但在它沒有列出任何依賴關係。

composer validate --with-dependencies沒有任何相關信息。

+0

您使用的是什麼版本的作曲家?你用'composer show Company/AppBundle -i -t'獲得了什麼輸出? – m1n0

回答

1

聽起來像你在中加入了composer.json文件。從不建議修改vendor目錄中的內容。作曲家也不使用vendor目錄來確定需求(即使在path存儲庫的情況下,它仍然是從中讀取的源,而不是vendor目錄)。

我也不明白你如何設法安裝Company/AppBundle如果它沒有composer.json已經。您能否詳細說明您的項目/依賴關係的層次結構,並取決於哪些內容?

+0

我導入'公司/ AppBundle'使用使用'composer.json'在項目的根: ' 「庫」:[ { 「類型」: 「包」, 「包」:{ 「name」:「Company/AppBundle」, 「version」:「0.0.72」, 「source」:{ 「url」:「http://git-srv.local/companybundles/appbundle.git」 , 「類型」: 「GIT中」, 「參考」: 「主站」 } } } ] 「需要」:{ 「公司/ AppBundle」:「*」, } ' – RdeV

+0

我修改了'vendor/Company/AppBundle'來測試它是否可行,但我確實擁有對其存儲庫的主控權限。 只要你手動要求它的依賴,但它們已經增長了,並且我們想隱式地要求它們在捆綁包中,它就用來完美地工作。 – RdeV

+1

不知道你爲什麼使用軟件包類型而不是vcs類型。手動維護包類型是一個非常繁瑣的過程,它確實應該只用於不能以更優選的方式包含的源代碼。既然您擁有源代碼回購,您可以簡單地爲其添加一個composer.json並將其作爲vcs存儲庫類型加入。 – alcohol