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

Jenkins执行maven install报cucumber ParameterTypeRegistry类加载错误

测试

运行StepDefinitions.testRunnerTest
测试执行数:1,失败数:0,错误数:1,跳过数:0,耗时:0.003 sec <<< 执行失败!所属用例:StepDefinitions.testRunnerTest
StepDefinitions.testRunnerTest 耗时:0.002 sec <<< 执行错误!
java.lang.NoClassDefFoundError: io/cucumber/cucumberexpressions/ParameterTypeRegistry

问题根因

该报错属于运行时类缺失问题,核心是Cucumber相关依赖异常,常见触发场景如下:

  • 项目内多个Cucumber组件版本不匹配,存在版本冲突
  • Maven依赖传递未自动引入cucumber-expressions组件,导致类加载失败
  • Jenkins节点的Maven本地仓库中Cucumber相关依赖包损坏

修复步骤

1. 统一锁定Cucumber全组件版本

在项目pom.xml的<dependencyManagement>节点导入Cucumber官方bom,避免不同组件版本不一致:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-bom</artifactId>
            <version>7.14.0</version> <!-- 可替换为业务适配的稳定版本 -->
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

后续引入cucumber-core、cucumber-java、cucumber-junit等依赖时无需单独指定版本,自动和bom版本保持一致。

2. 手动补全缺失依赖

如果使用的Cucumber低版本未内置cucumber-expressions组件,手动添加对应版本的依赖:

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-expressions</artifactId>
    <version>与Cucumber整体版本保持一致</version>
    <scope>test</scope>
</dependency>

3. 清理Jenkins环境缓存

修改Jenkins构建命令,添加强制更新依赖参数:
mvn clean install -U
如果仍报错,登录Jenkins对应执行节点,删除Maven本地仓库下io/cucumber目录的所有文件,重新触发构建即可。

内容的提问来源于stack exchange,提问作者Rakesh Sambargi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:03