Maven执行mvn test不运行测试、mvn package打包后找不到主类排查
问题原因及修复方案
你遇到的异常核心是Maven执行时没有加载到你业务模块的正确配置,结合重启终端的触发条件,按概率从高到低排查如下:
- 终端工作目录错误(最高概率)
你提供的构建日志中,构建类型标识为pom,而非普通业务项目的jar类型,说明你当前执行mvn命令的目录是项目的父级聚合工程目录,而非myApp业务模块所在的目录。父聚合工程本身没有配置测试用例、也没有主类声明,因此不会执行测试,打包生成的构件也不存在可运行的主类。
IntelliJ内置终端重启后会重置默认工作目录,如果你此前手动切换过目录到业务模块下,终端重启后会恢复到项目根目录,直接执行命令就会触发该异常。
修复方法:执行cd myApp切换到业务模块目录后,再重新运行mvn test或mvn package即可。 - 会话级Maven配置丢失
如果你此前的终端会话手动指定过激活的Maven Profile(测试执行、打包插件的配置可能绑定在特定Profile下),终端重启后临时激活的Profile会失效,导致maven-surefire-plugin(测试执行插件)、maven-jar-plugin(主类配置插件)的配置没有被加载。
修复方法:执行命令时追加Profile激活参数,比如mvn test -P 你此前使用的Profile名称,也可以在pom.xml中将对应Profile设置为默认激活。 - Maven上下文缓存异常
极少数场景下IntelliJ终端重启后会清空会话级Maven缓存,导致模块配置识别异常。你可以先在项目根目录执行mvn clean install完成全量构建,再到业务模块下执行测试、打包命令即可恢复。
内容的提问来源于stack exchange,提问作者Forumpy
相关产品推荐
相关产品推荐

