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

Exec Maven Plugin报ClassNotFoundException:多模块Maven项目求助

解决多模块Maven项目exec:java找不到依赖模块类的问题

嘿,这个问题我之前在多模块项目里也碰到过!明明依赖加了,模块也在同一个项目里,exec插件就是找不到类,我来帮你一步步排查:

1. 先确保model模块已经被正确构建

Maven多模块项目里,service模块依赖的model模块需要先完成编译、打包,并且安装到本地Maven仓库(或者至少在项目的构建上下文里存在)。如果直接在service模块跑命令,Maven可能没先处理model模块的构建。

解决办法:

  • 回到项目根目录,执行 mvn clean install -DskipTests,把所有模块(包括model)先构建一遍,之后再切换到service模块执行 mvn exec:java。

2. 给exec-maven-plugin指定classpath范围

默认情况下,exec插件的classpath可能没有包含所有compile范围的依赖(尤其是项目内的模块依赖),你需要明确配置让它包含这些依赖。

修改service模块pom.xml里的exec插件配置,加上classpathScope:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <configuration>
    <mainClass>com.codegenerator.CodeGeneratorApplication</mainClass>
    <!-- 新增这行,确保包含编译期依赖 -->
    <classpathScope>compile</classpathScope>
  </configuration>
</plugin>

3. 检查ABCEntity的引用是否用了全限定类名

报错里显示ClassNotFoundException: ABCEntity,看起来像是你在代码里只写了类名,没带包名。比如你的ABCEntity如果在com.yourproject.model包下,那代码里必须写com.yourproject.model.ABCEntity,而不是只写ABCEntity——不然JVM会在当前类的包下去找,肯定找不到model模块里的类。

4. 确认model模块的编译是否正常

单独进入model模块,执行 mvn clean compile,然后去target/classes目录下看看有没有生成ABCEntity的class文件。如果没有,那说明model模块本身编译就有问题,得先解决model模块的编译错误。

按这几步来,应该就能解决这个找不到类的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:40:48