来自私人仓库的作曲家创建项目

Posted

技术标签:

【中文标题】来自私人仓库的作曲家创建项目【英文标题】:composer create-project from private repo 【发布时间】:2013-08-12 04:16:34 【问题描述】:

我有一个托管在 Bit Bucket 上的私人项目。我有一个 SSH 密钥设置。有没有办法可以像在 Packagist 上一样使用 php composer create-project vendor/name path 命令?

【问题讨论】:

【参考方案1】:

嗯,有不同的方法可以实现这一点,即使用作曲家存储库而不是 packagist.org,这是一种更好、更集中的方式来管理您的私人作曲家包。另一种方法是使用 composer.json 将您的私有存储库合并到您的环境中,每个环境。

首先

Composer allows you to use private repositories to create projects.

就这样……

composer create-project vendor/name path --repository-url=http://repo.yourcomposerrepo.com

因为您不会向 packagegist 提交私有包。该 url 至少需要一个 packages.json 文件,如果您想要更动态的 packages.json 解决方案,您可以使用 satis 或您自己的 packagist。

使用 composer.json 的方法适用于已经创建的项目,这些项目将为私有包使用自定义存储库,而不是从私有存储库创建新项目。如果您想走类似的路线,请使用下一种方法。

第二

为您的环境全局配置您的私有存储库到您的config.json。然后像往常一样..

composer create-project vendor/name path

【讨论】:

这需要一个 package.json 而不是 repo。 在作曲家中,存储库一词指的是 satis、packagist 或其他基本上只是生成 package.json 文件的东西。在 package.json 中配置项目源,你可以像我在上面的例子中那样调用它来创建项目。 在 composer.json 中你可以通过 ala "repositories": [ "type" : "vcs", "url" : "git@git.blah.com:blah.git " ] 并注意关键是存储库。这就是我们在公司处理私人事务的方式。 好吧,如果您正在谈论将存储库设置放在全局 config.json 中,那很好。但是,否则 create-project 通常会用于创建一个不存在的项目,并且在那一刻不会有 composer.json 。不过,我将添加全局 config.json 方法。谢谢,因为这是另一个有效的选择。 :)【参考方案2】:

是的,Composer allows you to add private projects as 'repositories' 到您的 composer.json 文件。因此,您可以将私有项目包含到另一个项目中。

It provides support for GitHub and Bitbucket(以及 SVN 和 Mercurial)。

您需要将 composer.json 文件修改为如下所示:


    "repositories": [ 
        "type": "package",
        "package": 
            "name": "TheShiftExchange/test",
            "version": "1.0.0",
            "source": 
                "url": "https://github.com/TheShiftExchange/test.git",
                "type": "git",
                "reference": "master"
              
         
    ],
    "require": 
        "laravel/framework": "4.0.*",
        "TheShiftExchange/test": "1.0.*"
    ,

【讨论】:

请注意,"type": "package" 用于不支持 composer 的包(例如,使用它会影响自动加载)getcomposer.org/doc/05-repositories.md#package-2【参考方案3】:

我以前的方式:

composer create-project vendor/name path --repository="\"url\": \"https://bitbucket.org/user/project.git\", \"type\": \"vcs\"" --stability=dev --remove-vcs

参考:https://getcomposer.org/doc/03-cli.md#create-project

【讨论】:

【参考方案4】:

我们已将 Toran Proxy (https://toranproxy.com/) 安装为私有打包器,为此我们可以使用以下命令创建项目

composer create-project vendor/framework --repository-url=http://your-toran-repo-url/repo/private/ --stability=dev project name

如果项目未标记或您正在寻找最前沿的版本,我们使用的稳定性版本。

--stability=dev

【讨论】:

【参考方案5】:

由于这篇文章有一定的吸引力,我想我会添加另一个我使用的解决方案。 打开 ~/.bash_profile

并添加类似的东西

function _cmsname 
    composer create-project vendor/package --repository-url=http://private.repo.url.co.uk/ --stability=dev "$1"

alias cmsname=_cmsname

然后在终端输入cmsname projectname

【讨论】:

以上是关于来自私人仓库的作曲家创建项目的主要内容,如果未能解决你的问题,请参考以下文章

如何为将来的私人项目保留作曲家库中的修改?

使用Git上传项目代码到github

来自git clone的Laravel项目无法正常工作(无法使用key:generate或composer install / update)

用Git上传项目到github

如何使用Git上传项目代码到github

XAMPP:作曲家返回错误而不是创建新的laravel项目