【发布时间】:2018-02-20 16:31:25
【问题描述】:
我创建了一个带有一些注释标签的包,用于版本控制(1.0.0、1.0.1、1.1.0 和 2.0.0)。这个包存在于自己的主机上(所以不是通过Packagist) 在尝试要求该软件包时,composer 仅找到 2.0.0 版本,而在任何其他版本要求上都失败了。
项目使用包的Composer.php文件
{
"name": "projectname",
"description": "Description.",
"keywords": ["keys"],
"license": "Licence",
"type": "project",
"require": {
...
"space/package-name": "~1.0" // Also tried 1.0.0, 1.0.*, ~1.0@dev - only 2.0.0 works
}
"repositories": [
...
{
"type": "git",
"url": "git@gitlab.com:space/package-name.git" // Make sure package is found on specific hosting
}
],
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
}
在运行composer show "space/package-name" 时,我得到versions: * 2.0.0。所以在更新时,composer会产生以下错误:
The requested package space/package-name ~1.0 exists as name/package-
name[2.0.0, dev-master] but these are rejected by your constraint.
看起来 composer 找不到任何其他版本而不是最新版本,有什么方法可以解决这个问题吗?
已检查的内容:
- 包不包含 composer.json 中的版本(可能与 git 标签冲突)
- 使用过的标签是带注释的标签,会被推送到 repo。
更新: 可能是 Gitlab - Composer 问题,see this comment。
【问题讨论】:
标签: composer-php gitlab packages