Maven编译报错java.lang.NoClassDefFoundError: org/codehaus/plexus/util/Scanner求助
解决java.lang.NoClassDefFoundError: org/codehaus/plexus/util/Scanner问题
这个错误是Maven编译时找不到plexus-utils里的Scanner类导致的,结合你用的Java 11、Maven 3.8.1和IntelliJ环境,试试下面这些解决方案:
1. 强制刷新Maven依赖
执行这条命令清理项目缓存并重新下载所有依赖,能解决大部分依赖损坏或缺失的问题:
mvn clean install -U
-U参数会强制Maven更新快照依赖,同时重新拉取可能损坏的核心依赖文件。
2. 核对IntelliJ的Maven配置
打开IntelliJ的设置(Windows/Linux:File > Settings;Mac:IntelliJ IDEA > Settings),进入Build, Execution, Deployment > Build Tools > Maven:
- 确认
Maven home directory选的是你本地安装的Maven 3.8.1,别用IntelliJ自带的版本 - 检查
Local repository路径是否正确,确保该路径下org/codehaus/plexus/plexus-utils目录存在且文件完整 - 点击右侧Maven面板的刷新图标,重新加载所有Maven项目
3. 给编译插件指定兼容的plexus-utils版本
之前你加的3.0.15版本可能和Maven 3.8.1不兼容,换成更高版本试试:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>11</source> <target>11</target> </configuration> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> <version>3.5.1</version> </dependency> </dependencies> </plugin> </plugins> </build>
4. 手动修复本地仓库的损坏依赖
如果上面的方法没用,直接删除本地仓库里的plexus-utils目录:
- 找到本地仓库默认路径:
~/.m2/repository/org/codehaus/plexus/plexus-utils - 删除该目录下所有版本的文件夹
- 重新执行
mvn clean install让Maven重新下载依赖
5. 确认项目Java版本配置一致
打开IntelliJ的Project Structure(快捷键Ctrl+Alt+Shift+S):
- 进入
Project选项,确保Project SDK和Project language level都设为11 - 切换到
Modules,检查每个模块的Language level也设置为11
内容的提问来源于stack exchange,提问作者Ariane Leite
相关产品推荐
相关产品推荐

