我必须在BitBucket上创建一个私有的yii2扩展,并使用作曲家将其安装在我的项目中。
据我所知,SSH 设置正确,起初并非如此 - 我收到错误"找不到存储库或您没有权限"(或类似的东西)。
作曲家找到了作曲家.json,我删除了它进行测试,我收到一条错误消息"找不到有效的作曲家.json"。
现在,当我在 Git Bash 中运行composer update
时,它只会打印"没有要安装或更新的内容",而我的vendor/
文件夹中没有任何内容。
我在这里没有错误,任何想法都非常受欢迎!
我已经设置了存储库并添加了以下文件:
作曲家.json
{
"name": "ext. name",
"type": "yii2-extension",
"description": "My desc",
"authors": [
{
"name": "Jorgen",
"email": "jorgen@domain.com",
"homepage": "http://www.domain.com"
}
],
"minimum-stability": "stable",
"support": {
"source": "bitbucket.org/companyname/yii2-extensionname"
},
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "2.0.*"
},
"autoload": {
"psr-4": {
"companyname\extensionname\": ""
}
}
}
.gitignore
vendor/**
模型/测试.php
<?php
namespace companynameextensionnamemodels;
class Test
{
}
我已经在我的 Yii2 项目 composer.json 中添加了以下内容:
"repositories": [
{
"type": "vcs",
"url": "ssh://git@bitbucket.org/companyname/yii2-extensionname",
}
],
更新
所以我发现,如果我以这种格式添加我的存储库,它会找到并下载,但自动加载器-psr4.php 文件不会使用我的自动加载进行更新。
"repositories": [
{
"type": "package",
"package": {
"name": "vendor/yii2-extension-name",
"version": "master",
"source": {
"type": "git",
"url": "git@bitbucket.org:vendor/yii2-extension-name",
"reference": "origin/master"
}
}
}
当我有
"repositories": [
{
"type": "git",
"url": "https://bitbucket.org/vendor/yii2-extension-name"
}
],
我收到以下错误:
问题1 - 在任何版本中都找不到请求的软件包供应商/yii2扩展名,软件包名称中可能存在拼写错误。
潜在原因: - 包名称中的拼写错误 - 根据您的最低稳定性设置,该软件包没有足够稳定的版本 有关更多详细信息,请参阅 https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion。
阅读 https://getcomposer.org/doc/articles/troubleshooting.md 了解更多常见问题。
没有错别字,当我使用"package"
时找到并下载它。但是自动加载器不会更新。我也尝试了git@,https和ssh的各种变体。它总是作为一个包工作,而不是作为一个git或vcs。
编辑:哦,故障排除时最小稳定性设置为dev
。
您必须使用正确的名称:
{
"name": "vendor/yii2-extension-name",
"type": "yii2-extension",
这通常是您的Bitbucket用户名,后跟存储库的名称。
这将适用于您的存储库编辑器设置:
"repositories": [
{
"type": "git",
"url": "https://bitbucket.org/vendor/yii2-extension-name"
}
],