Composer php 加载专用git存储库的编写器依赖项
我有点困惑Composer是如何加载私有存储库项目的依赖项的。我找到了这个链接,但我不确定它是指嵌套的存储库还是仅仅指存储库的任何依赖项。为了澄清我的情况:Composer php 加载专用git存储库的编写器依赖项,composer-php,Composer Php,我有点困惑Composer是如何加载私有存储库项目的依赖项的。我找到了这个链接,但我不确定它是指嵌套的存储库还是仅仅指存储库的任何依赖项。为了澄清我的情况: 我有一个私有的git存储库,我正试图将它添加为项目的依赖项 私有git存储库也是一个composer项目,它包含一个composer.json,需要公开可用的包 我在composer.json中为该项目编写了以下代码 "repositories": [ { "type": "package", "pa
"repositories": [
{
"type": "package",
"package": {
"name": "{vendor}/{package-name}",
"version": "{arbitrary-version}",
"type": "package",
"source": {
"url": "git@github.com:{github-username}/{github-repository}.git",
"type": "git",
}
}
}
]
"require": {
"{vendor}/{package-name}": "^0.0.1"
}
因此,如果我在这些更改后对项目执行composer update
,它将成功地从私有存储库下载我的包,但不会触发对私有存储库的composer.json的检查/更新-因此不会创建供应商文件夹,也不会安装关键依赖项。私有存储库composer.json如下所示:
{
"name": "{vendor}/{package-name}",
"description": "{removed}",
"type": "library",
"require": {
"illuminate/database": "^5.6",
"chumper/zipper": "1.0.x",
"symfony/debug": "^4.0",
"vlucas/phpdotenv": "^2.4"
},
}
所以我的问题是,我想通过composer使用私有存储库做什么是可以实现的,如果可以,有人知道我哪里出了问题吗?类型用于非composer依赖项。如果您使用此类型,Composer甚至不会在定义的包源中查找Composer.json
文件,您需要在项目中的包声明中包含有关包的所有必需信息Composer.json
:
"repositories": [
{
"type": "package",
"package": {
"name": "{vendor}/{package-name}",
"description": "{removed}",
"type": "library",
"require": {
"illuminate/database": "^5.6",
"chumper/zipper": "1.0.x",
"symfony/debug": "^4.0",
"vlucas/phpdotenv": "^2.4"
},
"version": "{arbitrary-version}",
"source": {
"url": "git@github.com:{github-username}/{github-repository}.git",
"type": "git",
}
}
}
]
但是在您的情况下(您有一个带有适当composer.json
)的包),您应该使用vcs
类型:
"repositories": [
{
"type": "git",
"url": "git@github.com:{github-username}/{github-repository}.git"
}
]
类型用于非编写器依赖项。如果您使用此类型,Composer甚至不会在定义的包源中查找Composer.json
文件,您需要在项目中的包声明中包含有关包的所有必需信息Composer.json
:
"repositories": [
{
"type": "package",
"package": {
"name": "{vendor}/{package-name}",
"description": "{removed}",
"type": "library",
"require": {
"illuminate/database": "^5.6",
"chumper/zipper": "1.0.x",
"symfony/debug": "^4.0",
"vlucas/phpdotenv": "^2.4"
},
"version": "{arbitrary-version}",
"source": {
"url": "git@github.com:{github-username}/{github-repository}.git",
"type": "git",
}
}
}
]
但是在您的情况下(您有一个带有适当composer.json
)的包),您应该使用vcs
类型:
"repositories": [
{
"type": "git",
"url": "git@github.com:{github-username}/{github-repository}.git"
}
]
非常感谢你的帮助,我知道我可能做错了什么。我知道这超出了我最初的问题的范围,但不幸的是,在composer安装了我的repo中的所有软件包之后,
composer更新过程即将结束,但当它安装/克隆实际的存储库时,它会吐出:“{package}/{name}”:“dev master”},“repositories”:[{“type”:“vcs”,“url”:git@github.com:{username}/{repo}.git”,“no-api”:true}]我也在使用--preference source
标志,所以不确定它为什么仍然尝试使用dist?如果有帮助,请提供更多信息:现在尝试从dist下载-安装{package}/{repo}(dev master acb616e)下载:失败[Composer\Downloader\TransportException]无法下载“{username}/{repo}/zipball/acb616ee90ef5715641c7b91373d4c0613d9749b”文件(未找到HTTP/1.404)@XanT尝试在类型声明中将vcs
更改为git
。运气不好,但您帮助我解决了我的主要问题,因此我已将其标记为已接受。将其从vcs
更改为git
确实现在将其从传输异常更改为运行时异常,但相同的消息仍然存在。我必须进行更多调试,感谢您的帮助lp@XanT您可以尝试删除供应商
目录和composer.lock
文件。并清除composer缓存:composer clearcache
。我不确定它为什么不能与git
作为一种类型一起使用,可能与缓存有关。非常感谢您的帮助,我知道我可能做了一些简单的错误。我知道这超出了范围我最初的问题的范围,但不幸的是,在composer安装了我的repo中的所有包之后,现在处于composer更新过程的末尾,但是当它安装/克隆实际的存储库时,它会抛出:“{package}/{name}”:“dev master”},“存储库”:[{“type”:“vcs”,“url”:"git@github.com:{username}/{repo}.git”,“no-api”:true}]我也在使用--preference source
标志,所以不确定它为什么仍然尝试使用dist?如果有帮助,请提供更多信息:现在尝试从dist下载-安装{package}/{repo}(dev master acb616e)下载:失败[Composer\Downloader\TransportException]无法下载“{username}/{repo}/zipball/acb616ee90ef5715641c7b91373d4c0613d9749b”文件(未找到HTTP/1.404)@XanT尝试在类型声明中将vcs
更改为git
。运气不好,但您帮助我解决了我的主要问题,因此我已将其标记为已接受。将其从vcs
更改为git
确实现在将其从传输异常更改为运行时异常,但相同的消息仍然存在。我必须进行更多调试,感谢您的帮助lp.@XanT您可以尝试删除供应商
目录和composer.lock
文件。并清除composer缓存:composer clearcache
。我不确定它为什么不能作为一种类型与git
一起工作,可能与缓存有关。