来自私人仓库的作曲家创建项目
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 clone的Laravel项目无法正常工作(无法使用key:generate或composer install / update)