我希望实现以下设置(为了清楚起见,我省略了其他依赖项和其他内容):
项目的composer.json
{
"require": {
"vendor/masterpackage": "*"
}
}主包的composer.json
{
"require": {
"vendor/package-1": "dev-master",
"vendor/package-2": "dev-master"
}
}主包有版本版本,子包没有版本,因此需要开发母版。
由于minimum-stability只能在根composer.json中设置并应用于所有依赖项(在我的示例中这是不需要的),所以是否可以为只设置dev-stability标志--主包和它自己的依赖项--以便正确安装它的子包?我已经试过"vendor/masterpackage": "*@dev"了,但没有用.
发布于 2016-05-18 16:58:01
我已经找到了一种方法,使这一工作,并认为这将是有益的张贴,作为一个答案,供今后参考。
项目的composer.json
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master",
"vendorname/masterpackage": "*"
},
"merge-plugin": {
"require": [
"vendor/vendorname/masterpackage/dev-composer.json"
]
}
}Master的dev-composer.json
{
"require": {
"vendorname/package-1": "dev-master@dev",
"vendorname/package-2": "dev-master@dev"
}
}合并插件使其工作,因为它处理指定JSON文件的依赖关系,就像它们在根composer.json中一样。
发布于 2016-05-17 19:08:00
你用它做实验的方式,是行不通的。
依赖包的依赖关系不能直接受到影响。因此,如果您的项目禁止开发包,那么您就倒霉了。
您可以将这些间接包添加到项目composer.json中,并将它们添加到必要的@dev或dev-X环境中。这样,就可以直接满足开发的稳定性,并满足主包的要求。
但是,请注意,依赖分支是一个非常坏的习惯,它会使您的依赖关系变得非常脆弱。已经使用的提交id将被记录下来,但是一旦您更新并出错,您将很难处理所有正在移动的部分,即所有只提供分支的存储库。
https://stackoverflow.com/questions/37283757
复制相似问题