#600·COLA

COLA Maven Archetype Light 5.0.0 生成项目后依赖版本错误

Author: yiyongboCreated May 31, 2026Updated May 31, 2026

一、问题描述

我在使用 Alibaba COLA 的 Maven 脚手架创建项目时,选择的脚手架版本为:

text com.alibaba.cola:cola-archetype-light:5.0.0

项目创建成功后,在 IDEA 中执行 Maven install 时构建失败,提示找不到以下依赖:

text Could not find artifact com.alibaba.cola:cola-component-test-container:jar:4.4.0-SNAPSHOT

Maven 同时提示:

text Try to run Maven import with -U flag (force update snapshots)

但检查生成项目的根目录 pom.xml 后发现,该依赖版本被设置为了 4.4.0-SNAPSHOT。我也在阿里云 Maven 中央仓库中查询过,没有找到对应的 4.4.0-SNAPSHOT 版本。

后续我将该依赖版本从 4.4.0-SNAPSHOT 修改为 5.0.0 后,项目可以正常执行 Maven install。

因此初步判断:cola-archetype-light:5.0.0 的项目模板中,cola-component-test-container 依赖版本仍然引用了旧的 4.4.0-SNAPSHOT,导致脚手架生成的新项目无法正常构建。

二、本地环境

  • 操作系统:macOS
  • 设备型号:MacBook Pro M2 Pro
  • JDK 版本:JDK 17
  • Maven 版本:Apache Maven 3.9.11
  • IDE:IntelliJ IDEA
  • Maven Archetype:com.alibaba.cola:cola-archetype-light:5.0.0

三、复现步骤

  1. 打开 IntelliJ IDEA
  2. 创建新项目
  3. 选择 Maven Archetype 创建方式
  4. 选择 COLA 对应脚手架版本:

text com.alibaba.cola:cola-archetype-light:5.0.0

  1. 项目创建完成后,执行 Maven install

bash mvn clean install

  1. 构建失败,提示缺少依赖:

text Could not find artifact com.alibaba.cola:cola-component-test-container:jar:4.4.0-SNAPSHOT

四、实际结果

执行 Maven install 时,项目构建失败,原因是生成项目中引用了不存在的依赖版本:

xml com.alibaba.cola cola-component-test-container 4.4.0-SNAPSHOT

Maven 无法从仓库中解析:

text com.alibaba.cola:cola-component-test-container:jar:4.4.0-SNAPSHOT

五、期望结果

使用 cola-archetype-light:5.0.0 生成的项目,应该默认引用与当前脚手架版本匹配的 COLA 依赖版本,使新项目可以直接完成构建。

例如:

xml com.alibaba.cola cola-component-test-container 5.0.0

或者通过统一的版本变量进行管理,避免脚手架模板中残留旧版本号。

六、临时解决方案

目前本地可以通过手动修改生成项目中的依赖版本解决:

将:

xml 4.4.0-SNAPSHOT

修改为:

xml 5.0.0

修改后重新执行:

bash mvn clean install

项目可以正常构建。

七、初步原因分析

初步判断是 cola-archetype-light:5.0.0 的 archetype 模板中,cola-component-test-container 依赖版本没有同步升级,仍然保留了旧的 4.4.0-SNAPSHOT。

该版本在 Maven 仓库中无法解析,因此导致通过脚手架生成的新项目无法直接构建。

八、建议修复方式

建议将 cola-archetype-light 模板中的:

xml com.alibaba.cola:cola-component-test-container:4.4.0-SNAPSHOT

调整为:

xml com.alibaba.cola:cola-component-test-container:5.0.0

或者改为引用统一版本变量,例如:

xml ${cola.version}

以避免后续发布新版本时出现模板依赖版本未同步的问题。