2014-02-10 50 views
5

我想在提交拉取请求之前尝试修改我在本地项目中对Doctrine ORM所做的修改。在Composer中与Packagist一起使用自定义Git存储库

我在GitHub的仓库克隆踩下default-lockmode分支我的修改,然后添加以下到composer.json:

{ 
    "require": { 
     "doctrine/orm": "dev-default-lockmode" 
    }, 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/BenMorel/doctrine2.git" 
     } 
    ] 
} 

我认为这将有利于我的Git仓库在发现doctrine/orm包一个来自Packagist,但仍然从Packagist中加载其他软件包。

然而,当我运行composer update,我得到以下错误:

Your requirements could not be resolved to an installable set of packages.

Problem 1

  • Installation request for doctrine/orm dev-default-lockmode -> satisfiable by doctrine/orm[dev-default-lockmode].
  • doctrine/orm dev-default-lockmode requires doctrine/dbal >=2.5-dev,<2.6-dev -> no matching package found.

Potential causes:

  • A typo in the package name
  • The package is not available in a stable-enough version according to your minimum-stability setting

因此,它看起来像它的预期现在找到在我的GitHub库中的所有包。

是否可以使用自定义库只为doctrine/orm,但仍使用Packagist所有其他人呢?

回答

7

我只是缺少minimum-stability设置:

{ 
    "minimum-stability": "dev", 

    "require": { 
     "doctrine/orm": "dev-default-lockmode" 
    }, 

    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/BenMorel/doctrine2.git" 
     } 
    ] 
} 

主义DBAL正确地从Packagist拉,这是没有问题的。真正的问题是,这个软件包没有发布为稳定呢。

由于经常的答案是错误信息,我忽略了:

The package is not available in a stable-enough version according to your minimum-stability setting

1

它看起来像你的问题是,你是包括包本身已经得到了依赖

"require": { 
    "php": ">=5.3.2", 
    "ext-pdo": "*", 
    "doctrine/collections": "~1.1", 
    "doctrine/dbal": ">=2.5-dev,<2.6-dev", 
    "symfony/console": "2.*" 
}, 

这些看起来他们正试图从你的资料库解决。

您是否在配置中保留了对原则回购的原始引用。他们将需要解决集合/ dbal。

您的私有存储库应该优先。

而且满足的依赖,你也应该看看别名

https://getcomposer.org/doc/05-repositories.md#using-private-repositories 

如果您需要进一步的帮助,你可以发布更多的作曲家的文件。

+0

是的,它确实有依赖关系,我不想改变这些,我想有他们都回落到Packagist。 – Benjamin

+0

所以你的配置中还有其他地方的老教条? – BillyBigPotatoes

+0

不创建包的新名称可能会更简单 - 但要改为使用别名。 – BillyBigPotatoes

相关问题