使用Composer从另一个自定义库中加载自定义库时,我遇到了一些问题
我有2个自定义库,分别称为“ ia / audit_trail”和“ ia / flash”。而且“ ia / audit_trail”需要“ ia / flash”才能工作。
audit_trail:https://github.com/pierrererot/audit_trail
因此,我设置了require属性来调用另一个属性。没什么特别的,但是,当我在主项目中运行一个简单的composer update -vvv
时,就会出现此错误:
您的要求无法解决为一组可安装的软件包。
问题1
-ia / audit_trail_component [1.0.0]可满足ia / audit_trail_component〜1.0.0的安装请求。
-ia / audit_trail_component 1.0.0要求ia / flash_component〜1.0.0->找不到匹配的软件包。潜在原因:
-包裹名称中有错字
-根据您的最低稳定性设置,该软件包没有足够稳定的版本
有关更多详细信息,请参见https://getcomposer.org/doc/04-schema.md#minimum-stability。
-这是一个私人软件包,您忘了添加自定义存储库来找到它阅读https://getcomposer.org/doc/articles/troubleshooting.md了解更多常见问题...
但是,如果我将这两个库直接放入我的主项目中(因此,如果一个库不需要另一个库),它就可以工作!
这是我主要项目的composer.json
:
{
"require": {
"ia/audit_trail_component": "1.0.0"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/pierrererot/audit_trail.git"
}
]
}
好的。因此,我确实需要自定义的“ audit_trail”库。现在,这是我的自定义“ audit_trail”库的composer.json
:
{
"name": "ia/audit_trail_component",
"version": "1.0.0",
"type": "library",
"require": {
"ia/flash_component": "1.0.0"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/pierrererot/flash.git"
}
],
"minimum-stability": "dev"
}
好的。因此,我确实需要自定义的“ Flash”库。然后,这是我的自定义“ Flash”库的composer.json
:
{
"name": "ia/flash_component",
"version": "1.0.0",
"description": "Flash Component",
"type": "library",
"minimum-stability": "dev"
}
如您所见,在作曲家文件中一切似乎都正常,所以我不明白自己错过了什么。
在您问之前,我先弄清楚了这些事情:
两个库在其Git存储库上都有一个“ dev”和一个“ master”分支
两个库都在其Git存储库上至少推送了1.0.0标签
答案 0 :(得分:2)
repositories
设置仅是root用户-Composer将忽略所有依赖项的此设置,仅使用在主项目中定义的这些存储库。
存储库仅可用于根软件包,并且不会加载依赖项中定义的存储库。如果您想了解原因,请阅读FAQ entry。
因此,您需要将所有必要的存储库添加到主项目的composer.json
中:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/pierrererot/audit_trail.git"
},
{
"type": "vcs",
"url": "https://github.com/pierrererot/flash.git"
}
],