我想在提交拉取请求之前尝试在我的本地项目中对Doctrine ORM进行的修改。
我已将我的修改推送到我的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
时,我收到以下错误:
您的要求无法解析为可安装的软件包。
问题1
- doctrine / orm dev-default-lockmode的安装请求 - >可以通过doctrine / orm [dev-default-lockmode]来满足。
- doctrine / orm dev-default-lockmode需要doctrine / dbal> = 2.5-dev,< 2.6-dev - >找不到匹配的包。
潜在原因:
- 包名称中的拼写错误
- 根据您的最小稳定性设置
,包装不具备足够稳定的版本
所以看起来它现在希望在我的GitHub存储库中找到所有包。
是否可以仅为doctrine/orm
使用自定义存储库,但仍然将Packagist用于所有其他存储库?
答案 0 :(得分:7)
我错过了minimum-stability
设置:
{
"minimum-stability": "dev",
"require": {
"doctrine/orm": "dev-default-lockmode"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/BenMorel/doctrine2.git"
}
]
}
Doctrine DBAL从Packagist中正确提取,这不是问题所在。真正的问题是这个包还没有作为 stable 发布。
通常,答案在错误信息中,我忽略了:
根据您的最小稳定性设置
,包装不具备足够稳定的版本
答案 1 :(得分:1)
看起来您的问题是您所包含的软件包本身具有依赖性
"require": {
"php": ">=5.3.2",
"ext-pdo": "*",
"doctrine/collections": "~1.1",
"doctrine/dbal": ">=2.5-dev,<2.6-dev",
"symfony/console": "2.*"
},
看起来他们正在尝试从您的存储库中解析。
您是否在配置中保留了对doctrine repos的原始引用。他们将需要解决收集/ dbal。
您的私人存储库应该优先考虑。
另外,为了满足依赖关系,您还应该查看别名
https://getcomposer.org/doc/05-repositories.md#using-private-repositories
如果您需要进一步的帮助,可以发布更多的作曲家文件。