我有一个罕见的案例,我在这里有两个包装工作者因为我正在研究Drupal项目。我有https://packagist.org和http://packagist.drupal-composer.org/。
这里的问题是他们都定义了包drupal / coder。其中一个尊重composer.json,另一个不尊重,但生成一个。我正在努力创建一个超过here的问题,告诉他们尊重composer.json是可用的。
我想使用packagist.org中的软件包,但由于我定义了packagist.drupal-composer.org,我无法做到。
是否有办法从特定来源识别包,或重新定义已有包的存储库。
我尝试添加
{
"type": "vcs",
"url": "http://git.drupal.org/project/coder.git"
}
在我的存储库中无济于事。执行composer update; composer show
只会向我显示packagist.drupal-composer.org中的包。另外,定义:
{
"type": "composer",
"url": "http://packagist.org"
}
为我提供相同的结果。
我最后的想法是定义一个"包"并使用不同的名称将其指向存储库但似乎是一种蹩脚的解决方法,因为那时我必须维护"版本"。
答案 0 :(得分:2)
是的,这绝对是个问题。但是这里有一个解决方法,只是将packagist.drupal-composer.org上面的包定义到你的composer.json。
"repositories": [ { "type": "composer", "url": "https://packagist.org/p/drupal/coder.json" }, { "type": "composer", "url": "http://packagist.drupal-composer.org" } ]
答案 1 :(得分:1)
drupal/coder
repo定义了一个git仓库。这两个定义都会进入repository
部分。
现在:所有包都是从http://packagist.drupal-composer.org/获取的,drupal/coder
除外。
你走了:
{
"type": "project",
"repositories": [
{
"type": "git",
"url": "http://git.drupal.org/project/coder.git"
},
{
"type": "composer",
"url": "packagist.drupal-composer.org"
}
],
"require": {
"drupal/coder": "8.2.1"
}
}