我的项目projectAlfa
包含我的依赖项my/project-beta
。但my/project-beta
依赖otherProject
而没有 composer.json 。所以我在package
中定义了my/project-beta
类型的存储库。
Project Alfa composer.json
{
"repositories": [
{
"type": "git",
"url": "http://github.com/my/project-Beta"
}
],
"require": {
"my/project-beta": "dev-master"
}
}
项目测试版 composer.json
{
"name": "my/project-beta",
"repositories": [
{
"type": "package",
"package": {
"name": "other/project",
"version": "dev-master",
"source": {
"type": "git",
"url": "http://github.com/Other/Project",
"reference": "master"
}
}
}
],
"require": {
"other/project": "*"
}
}
问题:
如果我在composer install
上运行projectAlfa
,则不会加载依赖项,因为:
my/project-beta dev-master requires other/project * -> no matching package found
答案 0 :(得分:0)
您有两种可能的解决方案。
首先,Composer会忽略任何不属于主项目核心composer.json文件的其他存储库。但是,您可以在那里重复所有这些提及,然后允许Composer在没有composer.json文件的情况下找到此第三方依赖项。
重复从中获取代码的所有存储库不是最佳解决方案,而是针对小范围的快速解决方案。
第二个解决方案是创建一个lokal Satis存储库,其中包含来自packagist.org未知的私有存储库的所有元数据。您仍然需要手动添加到此Satis存储库URL的链接,但这在任何地方都是相同的,如果您在Satis中更新某些内容,所有项目将立即从中受益,而无需更改其中的内容。