nexus 默认不支持 composer,必须使用 3.68.0+ 版本(推荐 3.71+)并安装 nexus-repository-composer 插件,且需按顺序创建 proxy、hosted、group 三类仓库;控制台无 composer 选项是因旧版本(如 3.42.0)未内置该功能,3.45.0 起为实验性且默认禁用,3.68.0 才稳定可用。

直接说结论:Nexus 默认不支持 Composer,必须用 nexus-repository-composer 插件 + Nexus 3.71+(推荐 3.68.0 或更新),且不能只建一个仓库——必须组合 composer (proxy)、composer (hosted)、composer (group) 三层才能跑通。
为什么 Nexus 控制台里找不到 composer 选项?
不是配置错,是版本或插件缺失。Nexus OSS 3.x 原生不带 Composer 支持:
• composer 类型从 3.45.0 起作为实验性功能加入,但默认禁用
• 3.68.0 是当前企业稳定可用的最低推荐版本(2026 年主流生产线已普遍升级至此)
• 若你用的是 sonatype/nexus3:3.42.0 这类旧镜像,根本不会出现 composer (proxy) 或 composer (hosted) 模板
• 插件方式补救可行,但仅限 Nexus 3.71+,且需手动安装 nexus-repository-composer JAR 包到 deploy/ 目录并重启
创建三类 Composer 仓库的顺序和关键参数
顺序不能乱,否则 composer install 会 404 或跳过私有源:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer (proxy):Remote storage URL 必须填https://packagist.org(HTTP 会被拒绝);HTTP port 必须手动勾选启用(默认关闭,请求进不来) -
composer (hosted):Deployment policy 必须选Allow redeploy(否则composer push失败);无需开 HTTP port -
composer (group):把前两个拖进去聚合;对外只暴露这个 group 的 URL,例如http://nexus:8081/repository/composer-group/
客户端配置最容易漏掉的两件事
只改 repositories 不够,composer require 仍可能 fallback 到 packagist.org:
- 必须显式禁用默认源:
"packagist.org": false要写在composer.json的repositories顶层 - 全局配置要同步禁用:
composer config -g repos.packagist.org false,否则 CI 环境或新机器上会失效 - URL 末尾不能多斜杠:
http://nexus:8081/repository/composer-group✅,http://nexus:8081/repository/composer-group/❌(部分 Nexus 版本会 404)
私有包发布失败的常见原因
composer publish 报错或 401/404,通常卡在这几个点:
- 没用
composer (hosted)仓库——maven2 或 raw 类型仓库无法响应 Composer 协议 - 没配 Nexus 用户权限:对应用户至少要有
nx-repository-view-composer-hosted-*和nx-repository-view-composer-group-*权限 - 没装
elendev/nexus-composer-push工具——原生composer publish不兼容 Nexus 的 Composer 接口,必须用这个 CLI 替代 - PHP 项目
composer.json里"name"字段格式错误,如含大写字母或下划线(Composer 规范要求小写字母+短横线)
真正麻烦的不是搭建,是协议层适配:Composer 的元数据发现机制(packages.json 动态生成)、包上传签名验证、以及 Nexus 对 POST /packages 的路由处理,三者必须严丝合缝。插件版本、Nexus 主版本、客户端 Composer 版本之间稍有 mismatch,就会静默失败——建议所有环节统一用 Composer 2.5+、Nexus 3.68.0+、nexus-repository-composer 3.0.0+。










