Maven項目引用第三方j(luò)ar包找不到類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原因
排查發(fā)現(xiàn) b.jar 的源碼使用了ThreadFactoryBuilder,但是 idea 并沒有導(dǎo)入相關(guān)的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項目引用第三方j(luò)ar包找不到類ClassNotFoundException的詳細(xì)內(nèi)容,更多關(guān)于Maven引用jar找不到類的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java concurrency集合之ConcurrentHashMap_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java concurrency集合之ConcurrentHashMap的相關(guān)資料,需要的朋友可以參考下2017-06-06
Redis結(jié)合AOP與自定義注解實現(xiàn)分布式緩存流程詳解
項目中如果查詢數(shù)據(jù)是直接到MySQL數(shù)據(jù)庫中查詢的話,會查磁盤走IO,效率會比較低,所以現(xiàn)在一般項目中都會使用緩存,目的就是提高查詢數(shù)據(jù)的速度,將數(shù)據(jù)存入緩存中,也就是內(nèi)存中,這樣查詢效率大大提高2022-11-11
Mybatis?Web中的數(shù)據(jù)庫操作方法舉例詳解
Mybatis是一款優(yōu)秀的持久化框架,用于簡化JDBC的開發(fā),下面這篇文章主要給大家介紹了關(guān)于Mybatis?Web中數(shù)據(jù)庫操作方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
詳解如何將Spring Boot應(yīng)用跑在Docker容器中
這篇文章主要介紹了詳解如何將Spring Boot應(yīng)用跑在Docker容器中,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
MyBatis-Plus+達夢數(shù)據(jù)庫實現(xiàn)高效數(shù)據(jù)持久化的示例
這篇文章主要介紹了MyBatis-Plus和達夢數(shù)據(jù)庫實現(xiàn)高效數(shù)據(jù)持久化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Spring Boot使用Druid進行維度的統(tǒng)計和監(jiān)控
這篇文章主要介紹了Spring Boot使用Druid進行維度的統(tǒng)計和監(jiān)控,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-04-04

