Composer php Can';不要用Composer替换软件包
我对上游库进行了改进(尚未合并),这是我所依赖的另一个包的依赖项 为了强制Composer使用我的包而不是上游包,我尝试了以下方法:Composer php Can';不要用Composer替换软件包,composer-php,Composer Php,我对上游库进行了改进(尚未合并),这是我所依赖的另一个包的依赖项 为了强制Composer使用我的包而不是上游包,我尝试了以下方法: 我找到了我的库分支(分支名称:缓存到string),并更新了它的composer.json: "name": "benmorel/guzzle-psr7", "replace": { "guzzlehttp/psr7": "1.6.*" } 我更新了项目的composer.json以使用我的fork: "repositories": [ {
- 我找到了我的库分支(分支名称:
),并更新了它的缓存到string
:composer.json
"name": "benmorel/guzzle-psr7", "replace": { "guzzlehttp/psr7": "1.6.*" }
- 我更新了项目的
以使用我的fork:composer.json
"repositories": [ { "type": "vcs", "url": "https://github.com/BenMorel/psr7" } ], "require": { "benmorel/guzzle-psr7": "dev-cache-to-string" }
composer update
,失败原因如下:
无法将您的需求解析为可安装的软件包集
问题1
- 在任何版本中都找不到请求的程序包benmorel/guzzle-psr7,程序包名称中可能有输入错误
如何解决此问题?您不需要更改fork中的包名。您根本不需要更改fork的
composer.json
。您只需将fork添加到repositories部分,并更改所需包的约束以使用您的dev分支:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/BenMorel/psr7"
}
],
"require": {
"guzzlehttp/psr7": "dev-cache-to-string as 1.6.1"
}
Composer将从您的存储库中按版本覆盖原始的http/psr7包
如果某些其他软件包需要
guzzlehttp/psr7
-dev缓存到字符串
将不匹配^1.4
,则可能需要为分支使用别名。如果您使用dev cache将字符串设置为1.6.1
作为约束,您的分支将被检测为1.6.1
release。您不需要更改fork中的包名。您根本不需要更改fork的composer.json
。您只需将fork添加到repositories部分,并更改所需包的约束以使用您的dev分支:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/BenMorel/psr7"
}
],
"require": {
"guzzlehttp/psr7": "dev-cache-to-string as 1.6.1"
}
Composer将从您的存储库中按版本覆盖原始的http/psr7包
如果某些其他软件包需要
guzzlehttp/psr7
-dev缓存到字符串
将不匹配^1.4
,则可能需要为分支使用别名。如果您使用dev cache将字符串设置为1.6.1
作为约束,您的分支将被检测为1.6.1
release。为什么更改fork中的包名?因为guzzlehttp/psr-7
不是我直接使用的,而是我的一个依赖项引用的,它需要特定的版本,因此,我认为我必须替换:
原始包,这需要我提供另一个包名。但我可能完全错了,你还有别的建议吗?你不需要改名字。您根本不需要更改fork的composer.json
,只需将fork添加到存储库
部分,并更改所需包的约束以使用您的开发分支:“guzzlehttp/psr7”:“开发缓存到字符串”
。Composer将使用您的存储库(fork)中的guzzlehttp/psr7
。这就是问题所在:如果我这样做,Composer会抱怨它找不到适合space/crawler
要求的合适版本(^1.4
)。您可能需要使用别名作为约束:“guzzlehttp/psr7”:“开发缓存到字符串为1.6.1”
。为什么要更改fork中的包名?因为我没有直接使用http/psr-7,而是由我的一个依赖项引用,它需要特定的版本,所以我想我必须替换:
原始包,这需要我提供另一个包名。但我可能完全错了,你还有别的建议吗?你不需要改名字。您根本不需要更改fork的composer.json
,只需将fork添加到存储库
部分,并更改所需包的约束以使用您的开发分支:“guzzlehttp/psr7”:“开发缓存到字符串”
。Composer将使用您的存储库(fork)中的guzzlehttp/psr7
。这就是问题所在:如果我这样做,Composer会抱怨它找不到适合space/crawler
要求的合适版本(^1.4
)。您可能需要使用别名作为约束:“guzzlehttp/psr7”:“开发缓存到字符串为1.6.1”
。非常好。非常感谢。杰出的非常感谢。