• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
我曾溪底杀指玄
博客园    首页    新随笔    联系   管理    订阅  订阅

SpringMVC多模块间子模块引入本地jar ClassNotFoundException问题记录

项目结构如下:

api模块引用service-core模块,api模块打包为war,service-core打包为jar

其中service-core模块引入了一个本地jar

问题描述:

启动api引入jar包后编译能通过,但在api中调用就报ClassNotFoundException

问题原因:

出现这种问题就说明你引入的jar包在api war包的WEB-INF\lib下不存在。编译的时候不从WEB-INF\lib目录下寻找类,是从classpath下寻找的,也就是说你引入的jar包只是存在于classpath下。

 

问题解决:

service-core的pom配置

<dependency>
<groupId>sdk</groupId>
<artifactId>sdk</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/sdk.jar</systemPath>
</dependency>

api的pom配置
<!--使用maven-war-plugin插件在编译时指定第三方jar包目录并引入-->
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<webResources>
<resource>
<!-- 引入本模块下的jar/单模块项目的jar -->
<!--<directory>${basedir}/src/main/resources/lib</directory>-->
<!-- 引入多模块项目其它模块下的jar -->
<directory>../service-core/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
posted @ 2021-09-28 11:29  我曾溪底杀指玄  阅读(487)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3