美文网首页
Maven项目引用的第三方jar包中的类找不到:ClassNot

Maven项目引用的第三方jar包中的类找不到:ClassNot

作者: 南岩飞雪 | 来源:发表于2020-05-22 15:10 被阅读0次

问题

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

解决

  1. Project A 的 父pom 需要指定依赖
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>25.1-jre</version>
            </dependency>
  1. Project A 的module 子pom 需要引入一下
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </dependency>
图片.png
  1. 其实上两步只解决了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
  1. 使用mvn dependency:tree 查看依赖,其实是缺少了org.reflections;参照第1,2步配置好org.reflections就行了;
    如果mvn dependency:tree提示 Project A 自己的module 不在仓库中,可以先mvn clean install -Dtest.skip 一下
    图片.png

相关文章

网友评论

      本文标题:Maven项目引用的第三方jar包中的类找不到:ClassNot

      本文链接:https://www.haomeiwen.com/subject/vjhqahtx.html