[已解决]composer 直接使用 gitee 或 自建 git 的私有包?

1. 运行环境

1). 当前使用的 Laravel 版本?

8.x

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.4

3). 当前系统

随意

4). 业务环境

开发环境,可以的话有可能用到生产环境

5). 相关软件版本

符合 composer 包标准的,但是没有发布到 packagist.org

2. 问题描述?

想直接从 github 或 gitee 直接拉去包。改写的京东的官方sdk ,暂时还没打算发布,调试没问题,那边也不反对,那就能发布了

3. 您期望得到的结果?

可以 使用 composer require 和 update 更新就行

4. 您实际得到的结果?

In PackageDiscoveryTrait.php line 375:

Could not find a matching version of package pifeifei/php-jos-api-sdk. Check the package spelling, your version constraint and that the package is available in a stability which matches your minimum-stability (dev)。

本作品采用《CC 协议》,转载必须注明作者和本文链接
世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到ta。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

1. 目的:

  • 可以使用 composer require pifeifep/xxxcomposer update 更新私有包

2. 条件

  • git 服务: gitee,自建 git 服务器
  • 设置部署密钥:读取权限,git pull, git fetch 正常执行
  • 不使用 packagist.org

3. 我的配置

项目中添加 repositories

// 最终的 composer.json (部分内容)
{
    "name": "laravel/laravel",
    "type": "project",
    "require": {
        "pifeifei/xxxx": "dev-master"
    }
    "minimum-stability": "dev", // 这个暂不确定是否必须
    "prefer-stable": false, // 这个暂不确定是否必须
    "repositories": [
        {
            "type": "git",
            "url": "git@git.myhost.com:pifeifei/xxxx.git"
        }
    ]
}

扩展包的 composer.json (仅必要配置)

{
    "name" : "pifeifei/xxxx",
    "description": "aces php sdk",
    "type" : "library",
    "autoload" : {}
}
# 安装私有扩展包
composer require pifeifep/xxxx

到此,成功安装私有扩展包

4. 扩展

4.1 本地包

  • 支持本地包,如 /path/to/xxx
 "repositories": [
      {
          "type": "path",
          "url": "../../relative/path/to/package/"
      },
      {
          "type": "path",
          "url": "/absolute/path/to/package/"
      },
      {
          "type": "path",
          "url": "/absolute/path/to/several/packages/*"
      },
      {
          "type": "path",
          "url": "../../relative/path/to/package/",
          "options": {
              "symlink": false
          }
      },
      {
          "type": "path",
          "url": "../../relative/path/to/package/",
          "options": {
              "reference": "none"
          }
      },
  ]

x. 参考资料

PS: 任何时候,有更优质答案都会换其他答案

1年前 评论
讨论数量: 7

composer.json文件的repositories字段可以配置,怎么配自己查文档,文档比我说的清楚

大概是这样:

...
    "repositories": {
        "my-pack": {
            "type": "git",
            "url": "http://git.myhost.com/xxx/my-pack.git"
        },
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    },
    ...
1年前 评论
kis龍 (楼主) 1年前
renxiaotu (作者) 1年前
kis龍 (楼主) 1年前
李铭昕 1年前
kis龍 (楼主) 1年前

1. 目的:

  • 可以使用 composer require pifeifep/xxxcomposer update 更新私有包

2. 条件

  • git 服务: gitee,自建 git 服务器
  • 设置部署密钥:读取权限,git pull, git fetch 正常执行
  • 不使用 packagist.org

3. 我的配置

项目中添加 repositories

// 最终的 composer.json (部分内容)
{
    "name": "laravel/laravel",
    "type": "project",
    "require": {
        "pifeifei/xxxx": "dev-master"
    }
    "minimum-stability": "dev", // 这个暂不确定是否必须
    "prefer-stable": false, // 这个暂不确定是否必须
    "repositories": [
        {
            "type": "git",
            "url": "git@git.myhost.com:pifeifei/xxxx.git"
        }
    ]
}

扩展包的 composer.json (仅必要配置)

{
    "name" : "pifeifei/xxxx",
    "description": "aces php sdk",
    "type" : "library",
    "autoload" : {}
}
# 安装私有扩展包
composer require pifeifep/xxxx

到此,成功安装私有扩展包

4. 扩展

4.1 本地包

  • 支持本地包,如 /path/to/xxx
 "repositories": [
      {
          "type": "path",
          "url": "../../relative/path/to/package/"
      },
      {
          "type": "path",
          "url": "/absolute/path/to/package/"
      },
      {
          "type": "path",
          "url": "/absolute/path/to/several/packages/*"
      },
      {
          "type": "path",
          "url": "../../relative/path/to/package/",
          "options": {
              "symlink": false
          }
      },
      {
          "type": "path",
          "url": "../../relative/path/to/package/",
          "options": {
              "reference": "none"
          }
      },
  ]

x. 参考资料

PS: 任何时候,有更优质答案都会换其他答案

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!