最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IDEA解決maven包沖突easypoi NoClassDefFoundError的問題

 更新時間:2020年10月27日 14:16:28   作者:大樹  
這篇文章主要介紹了IDEA解決maven包沖突easypoi NoClassDefFoundError的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在平常工作中我們經(jīng)常會遇到maven引用的jar包沖突的事情,這時候我們就需要找出沖突的包,并將低版本或者缺少某些方法的jar給剔除掉。這個時候使用idea自帶的maven依賴樹就很好解決這樣的問題。

包沖突顯現(xiàn)出來的問題有:某些類找不到。

原因:工程中引入了一個需要的依賴,但工程中其他依賴的包內(nèi)部也可能會有相同的依賴,如果版本不同maven可能取了一個低的版本,然后可能造成某個類找不到。

比如:

在工程中引入了easypoi jar,要使用Excel導出功能。

<dependency>
 <groupId>cn.afterturn</groupId>
 <artifactId>easypoi-spring-boot-starter</artifactId>
 <version>4.1.2</version>
</dependency>
上述jar 內(nèi)部依賴 apache-poi 版本 4.1.0
<dependency>
 <groupId>org.apache.poi</groupId>
 <artifactId>poi</artifactId>
 <version>4.1.0</version>
</dependency>

我的工程中有個公司的公用的jar,內(nèi)部依賴了apache-poi 3.x

編寫代碼時沒問題,運行調(diào)用相關接口報錯如下

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/hssf/util/HSSFColor$HSSFColorPredefined
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at cn.huimin100.account.manager.main.filters.RequestWrapperFilter.doFilterInternal(RequestWrapperFilter.java:24)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

發(fā)現(xiàn)找不到是個內(nèi)部類,搜索主類發(fā)現(xiàn)主類所在的jar版本為3.9,這就是jar版本沖突造成的問題。

解決步驟:

1.在IDEA中右鍵項項目的pom文件,選擇Maven->Show Dependencies,會打開一個maven的依賴樹窗口,如下:

2.打開窗口我們可以看到完整的依賴樹,小技巧: 左上角有幾個小工具,比較常用的1顯示沖突項,2顯示從root到被選擇的jar包路徑,3顯示實際大小。要選擇沖突項的話可以直接點擊1,然后在點擊3,顯示的會更清楚一些,因為jar包比較多,jar依賴比較復雜會讓圖變得很小。之后如果你需要看這個jar的引用路徑可以點擊這個jar包再點擊2,就回顯示從pom文件的根路徑的包到被選擇的包的單條路線,很方便 ;

3.找到?jīng)_突的包后,選擇需要的那個jar包,右鍵要去除的那個jar包,點擊exclude。

紅色虛線代表沖突,而且標了相應版本。

就會在pom文件中被剔除(其實就是對應的pom中的exclusion)

這樣,就解決了jar版本沖突問題。

其他小技巧:

1.在依賴樹使用ctrl/command+f是可以直接搜索jar包的名稱的;

2.在依賴樹的界面使用ctrl/command+鼠標滾輪是可以放大縮小依賴樹的比例,同樣使用鍵盤上的+,-號也可以做到這個;

3.alt/option按住,然后鼠標在依賴樹上滑動,是可以達到放大鏡的效果的;

4.在依賴樹上雙擊是可以直接跳轉(zhuǎn)到該jar的引入位置。

參考

https://segmentfault.com/a/1190000019364264

到此這篇關于IDEA解決maven包沖突easypoi NoClassDefFoundError的問題的文章就介紹到這了,更多相關IDEA maven包沖突內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • jdk21環(huán)境配置詳細步驟記錄

    jdk21環(huán)境配置詳細步驟記錄

    JDK是整個Java開發(fā)的核心,它包含了Java的運行環(huán)境和Java工具,這篇文章主要給大家介紹了關于jdk21環(huán)境配置的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • springboot整合mongodb并實現(xiàn)crud步驟詳解

    springboot整合mongodb并實現(xiàn)crud步驟詳解

    這篇文章主要介紹了springboot整合mongodb并實現(xiàn)crud,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 反射機制:getDeclaredField和getField的區(qū)別說明

    反射機制:getDeclaredField和getField的區(qū)別說明

    這篇文章主要介紹了反射機制:getDeclaredField和getField的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot整合JdbcTemplate的示例代碼

    SpringBoot整合JdbcTemplate的示例代碼

    JdbcTemplate是Spring框架自帶的對JDBC操作的封裝,目的是提供統(tǒng)一的模板方法使對數(shù)據(jù)庫的操作更加方便、友好,效率也不錯,這篇文章主要介紹了SpringBoot整合JdbcTemplate,需要的朋友可以參考下
    2022-08-08
  • JAVA如何按字節(jié)截取字符串

    JAVA如何按字節(jié)截取字符串

    這篇文章主要介紹了JAVA如何按字節(jié)截取字符串,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Spring Security實現(xiàn)自定義訪問策略

    Spring Security實現(xiàn)自定義訪問策略

    本文介紹Spring Security實現(xiàn)自定義訪問策略,當根據(jù)誰訪問哪個域?qū)ο笞龀霭踩珱Q策時,您可能需要一個自定義的訪問決策投票者,幸運的是,Spring Security有很多這樣的選項來實現(xiàn)訪問控制列表(ACL)約束,下面就來學習Spring Security自定義訪問策略,需要的朋友可以參考下
    2022-02-02
  • Java 你知道什么是耦合、如何解(降低)耦合

    Java 你知道什么是耦合、如何解(降低)耦合

    這篇文章主要介紹了Java 你知道什么是耦合、如何解(降低)耦合的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java HashMap詳解及實例代碼

    java HashMap詳解及實例代碼

    這篇文章主要介紹了java HashMap詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-01-01
  • 代理模式:JAVA靜態(tài)代理和動態(tài)代理的實例和實現(xiàn)詳解

    代理模式:JAVA靜態(tài)代理和動態(tài)代理的實例和實現(xiàn)詳解

    這篇文章主要給大家介紹了關于Java靜態(tài)代理和動態(tài)代理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • JAVA對象clone方法代碼實例解析

    JAVA對象clone方法代碼實例解析

    這篇文章主要介紹了JAVA對象clone方法代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03

最新評論

收藏| 珲春市| 车险| 赤壁市| 田阳县| 郧西县| 突泉县| 贵州省| 龙井市| 华蓥市| 通渭县| 鞍山市| 余干县| 望城县| 册亨县| 措勤县| 清涧县| 鄂温| 基隆市| 太湖县| 柳州市| 武强县| 南平市| 邓州市| 肇源县| 桐城市| 寿宁县| 吉林市| 淮南市| 迁西县| 周至县| 宜丰县| 金寨县| 大同市| 兴业县| 敦化市| 华池县| 封丘县| 甘谷县| 金堂县| 平山县|