构建cucumber-java8测试时遇“找不到符号:类En”错误求助
IntelliJ构建cucumber-jvm失败:找不到En类及符号缺失问题
问题描述
刚接触Java开发,fork cucumber-jvm项目后在IntelliJ中执行构建操作,出现构建失败。核心错误信息如下:
C:\projects\cucumber-jvm\cucumber-java8\src\test\java\io\cucumber\java8\Java8LambdaStepDefinitionMarksCorrectStackElementTest.java:115:61 java: cannot find symbol symbol: class En location: class io.cucumber.java8.Java8LambdaStepDefinitionMarksCorrectStackElementTest
同时伴随大量其他符号缺失错误,推测根源是生成语言包的codegen步骤未正常执行。
解决步骤
1. 手动触发Maven代码生成步骤
cucumber-jvm中的En等语言相关类是通过代码生成器自动生成的,IntelliJ默认构建流程不会主动触发这个步骤,需要手动执行:
- 方式一:在IntelliJ的Maven侧边栏,找到项目根目录下的
Lifecycle→generate-sources,双击执行 - 方式二:在项目根目录打开终端,运行命令:
mvn generate-sources
2. 刷新项目结构
执行完代码生成后,需要让IntelliJ识别新生成的类:
- 右键点击项目根目录,选择
Reload from Maven - 或点击Maven侧边栏的刷新按钮(圆形箭头图标)
3. 重新构建项目
完成上述操作后,执行IntelliJ的Build → Build Project,即可正常构建。
额外排查点
- 确保本地安装了JDK 11及以上版本,cucumber-jvm对JDK版本有明确要求
- 若仍有问题,尝试清理后重新完整构建:
mvn clean install -DskipTests
内容的提问来源于stack exchange,提问作者gilgamesh82
相关产品推荐
相关产品推荐

