【问题标题】:Getting extension from private repo with composer使用作曲家从私人仓库获取扩展
【发布时间】:2016-07-06 21:44:53
【问题描述】:

我必须在 BitBucket 上创建一个私有 yii2 扩展,并使用 composer 将其安装在我的项目中。

据我所知,SSH 设置正确,一开始并没有 - 我收到一个错误“找不到 repo 或您没有权限”(或类似的东西)。

作曲家找到了composer.json,我将其删除以进行测试,并收到一条错误消息“找不到有效的composer.json”。

现在,当我在我的 Git Bash 中运行 composer update 时,它只会打印 "Nothing to install or update",而我的 vendor/ 文件夹中没有任何内容。

我在这里没有错误,欢迎任何想法!


我已经设置了 repo 并添加了以下文件:

composer.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/**

models/Test.php

<?php

namespace companyname\extensionname\models;


class Test
{

}

我已将以下内容添加到我的 Yii2 项目 composer.json

"repositories": [
    {
        "type": "vcs",
        "url":  "ssh://git@bitbucket.org/companyname/yii2-extensionname",
    }
],

更新

所以我发现如果我以这种格式添加我的 repo,它会被找到并下载,但 autoloader-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 - 请求的包 vendor/yii2-extension-name 在任何版本中都找不到,可能包名有错别字。

潜在原因: - 包名中的拼写错误 - 根据您的最低稳定性设置,该软件包在足够稳定的版本中不可用 有关详细信息,请参阅https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion

阅读https://getcomposer.org/doc/articles/troubleshooting.md了解更多常见问题。

没有错别字,在我使用"package"时找到并下载的。但是后来自动加载器没有更新。我还尝试了各种 git@、https 和 ssh 的变体。它始终作为一个包运行,而不是作为 git 或 vcs。

编辑:哦,排除故障时将最小稳定性设置为dev

【问题讨论】:

    标签: yii2 composer-php


    【解决方案1】:

    必须使用正确的名称:

    {
        "name": "vendor/yii2-extension-name",
        "type": "yii2-extension",
    

    这通常是您的 Bitbucket 用户名,后跟您的存储库名称。

    这将适用于您的存储库 Composer 设置:

    "repositories": [
        {
            "type": "git",
            "url": "https://bitbucket.org/vendor/yii2-extension-name"
        }
    ],
    

    【讨论】:

    • 哦,我知道了——我只是为了这篇文章而删除了它
    • 哇,你说得对——我在"name"-设置中有一个小错字。谢谢你,我没有注意到 - 我也不知道这很重要。
    • 作曲家非常挑剔 - 很高兴你把它整理好了:)
    猜你喜欢
    • 2013-08-12
    • 2021-02-04
    • 2014-09-27
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2020-04-27
    相关资源
    最近更新 更多