Composer 使用本地GitLab 相关问题

Problem

使用composer require 本地GitLab中的项目,会把.git文件夹一块拉进来,从而在commit的时候报子项目问题

Cause

在配置composer repositories时,type使用的是git,则在提取时,等同于git clone,则会连着.git一起clone下来

正确的方法应该是参考 https://docs.gitlab.com/ee/user/packages/composer_repository/

发布时

  1. 在项目中composer init 来生成composer.json
  2. 发布一个release或打一个tag
  3. 通过API发布Composer package,这一步需要access token

成功后会在项目的Package Registry的菜单下看到他

安装时

  1. 在Package Registry点详情进去也会看到相关命令
1
composer config repositories.<group_id> composer https://gitlab.example.com/api/v4/group/<group_id>/-/packages/composer/
  1. 需要设置access token,推荐–global,不然会在项目中留下auth.json,不宜提交
  2. 需要设置gitlab-domains
1
composer config gitlab-domains <你的GitLab地址>
  1. 如果你的GitLab是HTTP,还需要设置"secure-http": false
  2. composer require 你的包