Maven项目引用第三方jar包找不到类ClassNotFoundException
问题
Project A 引用了 b.jar,本身编译正常,无报错;
但是启动springboot的时候报错
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.ThreadFactoryBuilder
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 38 common frames omitted原因
排查发现 b.jar 的源码使用了ThreadFactoryBuilder,但是 idea 并没有导入相关的jar包com.google.guava
解决
- Project A 的 父pom 需要指定依赖
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>- Project A 的module 子pom 需要引入一下
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
- 其实上两步只解决了
com.google.guava依赖的问题,启动还会有报错
Caused by: java.lang.ClassNotFoundException: org.reflections.Reflections
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 26 common frames omitted使用mvn dependency:tree 查看依赖,其实是缺少了org.reflections;参照第1,2步配置好org.reflections就行了;
如果mvn dependency:tree提示 Project A 自己的module 不在仓库中,可以先mvn clean install -Dtest.skip 一下

以上就是Maven项目引用第三方jar包找不到类ClassNotFoundException的详细内容,更多关于Maven引用jar找不到类的资料请关注脚本之家其它相关文章!
相关文章
Java concurrency集合之ConcurrentHashMap_动力节点Java学院整理
这篇文章主要介绍了Java concurrency集合之ConcurrentHashMap的相关资料,需要的朋友可以参考下2017-06-06
MyBatis-Plus+达梦数据库实现高效数据持久化的示例
这篇文章主要介绍了MyBatis-Plus和达梦数据库实现高效数据持久化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-08-08


最新评论