我正在编写一个可用于我未来项目的框架。 我想把框架放到一个私有托管的git服务器上,并在我未来的项目中用composer加载它。
我可以知道我什么时候开始,应该" - 裸露"使用? 我曾经创造过"裸露的#34;回购,但作曲家说没有找到包裹。我已经四处寻找,并认为这是因为#er;缺少了composer.json"。 但是,如果没有" - 裸",我甚至无法将我的代码推送到服务器。我" git clone"框架到另一个位置,并用作曲家加载位置,仍然失败。
我尝试过以下两个版本,都失败了:
"repositories": [
{
"type": "vcs",
"url": "https://server/git/sdk/"
}
]
"repositories": [
{
"type": "package",
"package": {
"name": "vendor/sdk",
"version": "master",
"source": {
"url": "https://server/git/sdk/",
"type": "git",
"reference": "master"
}
}
}
]
感谢。
答案 0 :(得分:4)
我引用了有关如何从VCS加载包的官方文档: https://getcomposer.org/doc/05-repositories.md#using-private-repositories
要求私有项目B,您需要在公共项目A的composer.json
文件中有两件事:
vcs
,其中包含服务器上私有存储库的URL 需要它
{
"name": "project A",
"description": "public project A requiring private project B",
"require": {
"vendor/my-private-repo": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "git@your-server.com:vendor/my-private-repo.git"
}
]
}
然后运行Composer。它将私有项目B提取到项目A的供应商文件夹中。
我可以知道我什么时候开始,应该" - 裸露"使用?我曾经创造过"裸露的#34;回购,但作曲家说没有找到包裹。我已经四处寻找,并认为这是因为#er;缺少了composer.json"。
git init --bare
创建一个没有工作树的存储库。这意味着存储库不包含源文件的工作或签出副本。只有repo的git修订历史存储在存储库的根文件夹中(而不是存储在.git子文件夹中)。
我" git clone"框架到另一个位置,并用作曲家加载位置,仍然失败。
您不需要git clone
或git init
存储库来存储本地副本,只需使用Composer直接从私有服务器获取。
我们有以下情况:
composer.json
的项目A应该从私人仓库获取项目B. composer.json
方面以解决此问题(见上文)旁注:您发布的第二个repository
定义定义了package
。
https://getcomposer.org/doc/05-repositories.md#package-2中对此进行了描述
你是免费的,需要私人仓库作为一个包,但这里不需要它,因为上面的composer.json
应该可以正常工作。