首页 > 解决方案 > 如何使用作曲家要求托管在 bitbucket.org 上的私有包?

问题描述

我试图要求我从 bitbucket.org 上的私有 git 存储库创建的包。

composer.json我的私人 git 存储库中有以下内容:

{
    "name": "[user]/[package]",
    "type": "project",
    "license" : "proprietary",
    "authors": [],
    "require": {
        "php": "^5.6 || ^7.0"
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.0-dev"
        }
    }

如果我打电话...

composer require git@bitbucket.org:[user]/[package].git

...我得到以下异常:

 [UnexpectedValueException]
  Could not parse version constraint [user]/[package].git: Invalid version string "[user]/[package].git"

如何安装我的私人包?

[更新]

我已按照建议将 json 文件放入我的新项目中,我现在收到此错误。

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package [user]/[package] 1.0-dev exists as [user]/[package][1.0.x-dev, dev-master] but these are rejected by your constraint.

标签: gitversion-controlcomposer-phpbitbucket

解决方案


您需要通过添加存储库来告诉作曲家在哪里可以找到您的包。

composer无法像您尝试的那样直接从 git 存储库中要求包。

将包含密钥下的包的 git 存储库repositories作为vcs存储库添加到composer.json您打算使用该包的项目的存储库中。

{
  "repositories": [
    { "type": "vcs", "url": "https://bitbucket.org/[user]/[package].git" }
  ],
  "require": {
    "[user]/[package]": "1.0-dev"
  }
}

您还可以将存储库添加到全局 composer.json以使其可用于所有项目。


推荐阅读