Composer php 如何使依赖项使用其依赖项的修补版本?
我的项目有一个Composer php 如何使依赖项使用其依赖项的修补版本?,composer-php,Composer Php,我的项目有一个vendor1/dep1依赖项。此软件包有自己的依赖项vendor2/dep2。最后一个包有一个bug,我修复了它,并将我的补丁作为一个请求返回。但是维护人员没有响应,我想使用这个子依赖项的补丁版本 为此,我必须拿出一个vendor1/dep1包,将其composer.json更改为: "repositories": [ { "type": "vcs", "url": "https://github.com/m
vendor1/dep1
依赖项。此软件包有自己的依赖项vendor2/dep2
。最后一个包有一个bug,我修复了它,并将我的补丁作为一个请求返回。但是维护人员没有响应,我想使用这个子依赖项的补丁版本
为此,我必须拿出一个vendor1/dep1
包,将其composer.json
更改为:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/me/dep2"
}
],
"require": {
"vendor2/dep2": "dev-master",
并将其提交到patched-dep2
分支
之后,我还更新了我的项目composer.json
:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/me/dep1"
}
],
"require": {
"vendor1/dep1": "dev-patched-dep2",
非常棘手,而且不起作用。我不知道为什么。非常感谢您的建议。
存储库
设置将从依赖项中忽略-此设置仅对根项目的composer.json
有效。因此,vendor1/dep1
fork中的设置将被忽略
您需要在主项目的composer.json
中为这两个分叉定义存储库:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/me/dep1"
},
{
"type": "vcs",
"url": "https://github.com/me/dep2"
}
],
"require": {
"vendor1/dep1": "dev-patched-dep2"
}
但在您的情况下,您应该能够在不分叉dep1
的情况下更改此选项:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/me/dep2"
}
],
"require": {
"vendor1/dep1": "1.1.1",
"vendor2/dep2": "dev-master as 1.1.2"
}
如果要替换1.1.1
和1.1.2
,则这些软件包应使用真实版本dev master as 1.1.2
应该覆盖dep1
中的约束,并且composer应该使用您的fork中的master分支