我的项目需要库A,A需要B1。 B1坏了但是有一个叉子B2。 我想实现即使A需要B1而不是B2,作曲家也会安装B2而不是B1。
怎么做?
在symfony项目中,我们需要以下库:
"require": {
"emanueleminotto/twig-cache-bundle": "1.0.2",
}
此库requires itself另一个当前已损坏的库:
"require": {
"asm89/twig-cache-extension": "^1.3"
},
对于已损坏的库,已存在pull request超过4个月,但维护者拒绝合并它。
我的问题是,如果还可以覆盖子依赖关系的依赖关系,那么总是使用修补的fork而不是原来的那个?
对于asm89 / twig-cache-extension存在以下带有修复的分支:https://github.com/blackandred/twig-cache-extension
我尝试将此fork添加到我的composer.json并在“存储库”下明确注册了fork:
"repositories": [
{
"type": "git",
"url": "https://github.com/blackandred/twig-cache-extension"
}
],
并在我的composer-json中添加了依赖项,并将更改后的版本添加到“dev-master”:
"require": {
"asm89/twig-cache-extension": "dev-master",
"emanueleminotto/twig-cache-bundle": "1.0.2",
}
但由于 emanueleminotto / twig-cache-bundle 仍需要原始库,因此composer会忽略fork并安装原始库。
我能在这做什么吗?
答案 0 :(得分:5)
我认为这种情况下的文档有good example。
基本上你需要在composer.json中定义一个别名,如下所示:
name 'self' is not defined
提问者添加:
仍然缺少一步:purchase_order_status = fields.One2many('purchase.order', 'request_id', string='Order',copy=True)
purchase_id = fields.Many2one('purchase.request', 'Purchase request')
答案 1 :(得分:2)
将replace
部分添加到您的前叉composer.json
:
{
"replace": {
"asm89/twig-cache-extension": "self.version"
}
}