2015-04-01 39 views
1

我有一个罕见的情况,我在这里玩两个packagists,因为我正在做一个Drupal项目。我有https://packagist.orghttp://packagist.drupal-composer.org/如何在与其他软件包具有相同名称的作曲家中使用软件包?

这里的问题是,它们都定义了包的Drupal /编码器。其中一个尊重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" 
} 

为我提供了相同的结果。

我的最后一个问题是定义一个“包”,并在用不同的名称储存库点,但似乎像一个蹩脚的解决办法,因为那时我要保持“版本”。

回答

2

是的,这绝对是一个问题。但是这里有一个解决方法,就是你的composer.json上面packageagist.drupal-composer.org的包定义。

 

"repositories": [ 
    { 
     "type": "composer", 
     "url": "https://packagist.org/p/drupal/coder.json" 
    }, 
    { 
     "type": "composer", 
     "url": "http://packagist.drupal-composer.org" 
    } 
] 

+0

欢迎StackOverflow上:) - 与https://packagist.org/p/drupal/coder.json +1本尼斯和快速的解决方法应包括在作曲文档。 – 2015-04-01 22:16:21

1
  1. 您定义Drupal的packagist作曲家式回购。
  2. ,可以定义drupal/coder回购一个混帐回购协议。

这两个定义都进入了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" 
    } 
} 
+0

这绝对是更传统的方式,我会这样做......“type”:“git”和“type”:“vcs”之间有什么区别。我没有在composer.org上看到它。此外,在添加存储库条目并执行'composer show drupal/coder 8.2.1'后,我仍然可以获得drupal-composer规范。 – 2015-04-02 03:32:26

+0

好的诀窍是,列表中较高的存储库优先。去编辑你的答案,以便两个切换......这将使其正确。 – 2015-04-02 03:51:02

+1

类型“git”对于这个仓库更具体,因为我们知道它是一个git仓库。键入“vcs”将触发自动检测,回购获取,检查这是什么样的事情,这是hg,svn,git。这里定义'git'而不是'vcs'可以节省一些时间。列表中较高的优先级。这让我感到惊讶,因为规则应该是任何自定义存储库都优先于packagist/composer存储库。但是,如果将这些定义转移给你,为什么不...... .. :) – 2015-04-02 09:08:12

相关问题