2017-07-29 47 views
2

A具有下列文件夹,每一个都包含项目:如何需要依赖于其他本地包本地包

PackageA 
PackageB 
PackageC 

程序包A取决于PackageB女巫也取决于PackageC,每个人都是一个git仓库。

这是程序包A composer.json:

{ 
    "name": "packagea/packagea", 
    "require": { 
     "packageb/packageb": "dev-master" 
    } 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "../PackageB" 
     } 
    ] 
} 

这是PackageB composer.json:

{ 
    "name": "packageb/packageb", 
    "require": { 
     "packagec/packagec": "dev-master" 
    } 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "../PackageC" 
     } 
    ] 
} 

这是PackageC composer.json:

{ 
    "name": "packagec/packagec" 
} 

这是我所得到的,当我尝试composer update在程序包A文件夹:

你的要求不能被解析到一个可安装一套 包。

问题1 - packageb/packageb dev-master的安装请求 - >可以通过packageb/packageb [dev-master]满足。 - packageb/packageb dev-master需要packagec/packagec dev-master - >没有找到匹配的软件包。

可能的原因: - 包名称 一个错字 - 程序包根据您的最低稳定性设置见 https://getcomposer.org/doc/04-schema.md#minimum-stability更多细节,不提供稳定,充足的版本。

但是,有上PackageB

我在做什么错指定的PackageC依赖?

回答

3

与私有依赖关系的主要技巧是发现在repositories不是共享整个树。所以,如果你有你的project,这需要从VCS,那么你需要projectpackage A包括自己composer.jsonrepositories部分正确的入口。这很明显,但现在想象一下package A需要来自不同私有存储库的package B。所以,你加什么需要package Bcomposer.jsonrepositories但同时即单元封装测试工作正常,你仍然会试图在您project,相同的方式,描述了组件时失败。这都是因为这些依赖性来源。不那么显而易见的解决方案是在您的projectcomposer.json所有私有仓库 - 即使不直接需要或使用它。换句话说,你的projectcomposer.json必须包括根据需要通过它包括所有的包,package Apackage B(等)VCS库条目。在你的情况下,你需要使它像这样流淌:

{ 
    "name": "packagea/packagea", 
    "require": { 
     "packageb/packageb": "dev-master" 
    } 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "../PackageB" 
     }, 
     { 
      "type": "vcs", 
      "url": "../PackageC" 
     } 
    ] 
} 
+0

你的需求无法解析为一套可安装的软件包。 问题1 - packageb/packageb dev-master需要packagec/packagec dev-master - > packagec/packagec [dev-master]可以满足。 - packageb/packageb dev-master需要packagec/packagec dev-master - > packagec/packagec [dev-master]可以满足。 - 对packagec/packagec的删除请求== 9999999-dev - packageb/packageb dev-master的安装请求 - >可以通过packagec/packagec [dev-master]满足。 – e200

+0

这就是你的答案中缺少的是我的问题的解决方案:“最小稳定性”:“dev”, “prefer-stable”:true – e200

+0

请将这些行添加到您的答案中,以便我可以标记为**答案**,非常感谢! :) – e200

相关问题