执行gmavenplus-plugin:generateStubs报错junit.framework.TestSuite类缺失
问题排查与解决方法
问题根因
执行mvn verify时gmavenplus插件在Groovy代码编译生成存根的阶段,无法加载junit.framework.TestSuite类,当前项目依赖中JUnit仅存在于test范围类路径,编译阶段类路径无对应依赖导致报错。
解决步骤
- 检查项目
src/main/groovy下的代码是否有直接引入/继承JUnit相关类的情况,比如继承junit.framework.TestCase、引用TestSuite等,如果是测试类错误放在了主代码目录,将对应类移动到src/test/groovy目录即可。 - 如果确认主代码中确实需要依赖JUnit相关类,在pom.xml中显式引入JUnit 4依赖,scope设为compile:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>compile</scope> </dependency>
- 如果主代码不需要JUnit依赖,也可以给gmavenplus插件单独添加JUnit依赖,保证插件执行阶段可以加载到对应类:
<plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> <version>1.6.1</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.11</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>generateStubs</goal> <goal>compile</goal> <goal>generateTestStubs</goal> <goal>compileTests</goal> </goals> </execution> </executions> </plugin>
- 修改完成后执行
mvn clean verify重新编译验证即可。
内容的提问来源于stack exchange,提问作者Subhojoy Dey
相关产品推荐
相关产品推荐

