我正在编写一个可用于未来项目的框架。我想将框架放到一个私人托管的git服务器上,并在以后的项目中用composer加载它。
我可以在进行git init时知道使用“ --bare”吗?我曾经创建过“裸露”的仓库,但作曲家说找不到这个包。我到处搜索,并认为这是由于“缺少composer.json”造成的。但是,如果没有“ --bare”,我什至无法将代码推送到服务器。我将框架“ git clone”到另一个位置,并使用composer加载该位置,仍然失败。
我已经尝试了以下两个版本,但都失败了:
"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"
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
谢谢。
我正在参考有关如何从VCS加载程序包的官方文档:https : //getcomposer.org/doc/05-repositories.md#using-private-repositories
要要求私有项目B,您需要在composer.json公共项目A 的文件中有两件事:
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"
}
]
}
Run Code Online (Sandbox Code Playgroud)然后运行Composer。它将私有项目B提取到项目A的供应商文件夹中。
我可以在进行git init时知道使用“ --bare”吗?我曾经创建过“裸露”的仓库,但作曲家说找不到这个包。我到处搜索,并认为这是由于“缺少composer.json”造成的。
git init --bare创建没有工作树的存储库。这意味着存储库不包含源文件的有效或已检出副本。只有仓库的git修订历史记录才存储在存储库的根文件夹中(而不是.git子文件夹中)。
我将框架“ git clone”到另一个位置,并使用composer加载该位置,仍然失败。
您不需要git clone或git init存储库来存储本地副本,只需使用Composer直接从私有服务器中获取即可。
我们有以下情况:
composer.json应该从私人仓库中获取项目B。composer.json于解决此问题(请参见上文)旁注:repository您发布的第二个定义定义了package。这在https://getcomposer.org/doc/05-repositories.md#package-2
中进行了描述。您可以自由地将私有存储库作为一个软件包来使用,但是这里不需要这样做,因为上面的方法composer.json可以正常工作。