You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Composer安装失败:composer.json内联别名语法错误问题排查

解决Composer别名配置错误:Invalid version string "xsd2php-dev"

我来帮你搞定这个Composer安装失败的问题!先一步步拆解错误原因和修复方案:

错误根源分析

你遇到的错误提示已经说得很明确:

[UnexpectedValueException] Invalid version string "xsd2php-dev" in "xsd2php-dev as 0.18.0", the alias source must be an exact version, if it is a branch name you should prefix it with dev-

核心问题是Composer对分支别名的格式有强制要求:如果别名的源是仓库分支名称,必须以dev-作为前缀。你写的xsd2php-dev是目标仓库的分支名,但缺少了dev-前缀,导致Composer无法识别它是分支版本。

原配置意图解读

你的这条配置"jms/serializer": "xsd2php-dev as 0.18.0"的思路完全正确:

  • 想要使用repositories里配置的goetas/serializer仓库的xsd2php-dev分支代码
  • 同时把这个分支版本别名为0.18.0,让项目的其他依赖认为它是jms/serializer的正式0.18.0版本

修复步骤

只需要给分支名加上dev-前缀,修改这条配置为:

"jms/serializer": "dev-xsd2php-dev as 0.18.0"

修改后的完整composer.json

{
  "require": {
    "jsanc623/phpbenchtime": "dev-master",
    "gte451f/phalcon-json-api-package": "dev-master",
    "soundasleep/html2text": "~0.2",
    "phpmailer/phpmailer": "~5.2",
    "php": ">=5.2.0",
    "ext-curl": "*",
    "jms/serializer": "dev-xsd2php-dev as 0.18.0",
    "robmorgan/phinx": "^0.5.3",
    "aws/aws-sdk-php": "^3.19"
  },
  "require-dev": {
    "codeception/codeception": "*",
    "flow/jsonpath": "dev-master",
    "goetas/xsd2php": "2.*@dev",
    "goetas/xsd-reader": "2.*@dev"
  },
  "repositories": [{
    "type": "vcs",
    "url": "https://github.com/goetas/serializer.git"
  }]
}

验证修复

修改完成后,重新执行composer install或者composer update jms/serializer,应该就能正常完成安装流程了。

内容的提问来源于stack exchange,提问作者Matt Krell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:42:39