国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:84日期:2024-08-07 14:21:42

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

包沖突顯現出來的問題有:某些類找不到。

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

比如:

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

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

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

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

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/hssf/util/HSSFColor$HSSFColorPredefinedat 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)

發現找不到是個內部類,搜索主類發現主類所在的jar版本為3.9,這就是jar版本沖突造成的問題。

解決步驟:

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

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

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

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

3.找到沖突的包后,選擇需要的那個jar包,右鍵要去除的那個jar包,點擊exclude。

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

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

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

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

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

其他小技巧:

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

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

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

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

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

參考

https://segmentfault.com/a/1190000019364264

到此這篇關于IDEA解決maven包沖突easypoi NoClassDefFoundError的問題的文章就介紹到這了,更多相關IDEA maven包沖突內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: IDEA
相關文章:
主站蜘蛛池模板: 国产真实乱子伦精品视手机观看 | 波多野结衣视频在线观看 | 国产精品日韩 | 国内欧美一区二区三区 | 成人免费看黄 | 男人操美女逼视频 | 中文字幕免费 | 亚洲一级毛片免观看 | 国产亚洲精品一品区99热 | 国产精品视频九九九 | 波多野结衣中文在线 | 欧美野外性xxxxfeexxxxx | 欧美成人精品高清在线观看 | 看三级网站 | 美女很黄很黄是免费的·无遮挡网站 | 欧美日韩色黄大片在线视频 | 女教师的一级毛片 | 午夜性刺激免费视频观看不卡专区 | 国内精品国语自产拍在线观看55 | 丝袜精品 欧美 亚洲 自拍 | 国产第一区二区三区在线观看 | 亚洲va视频 | 伊人狼人综合 | 免费黄色网址在线播放 | 一级特黄一欧美俄罗斯毛片 | 99精品在线免费观看 | 色哟哟国产成人精品 | 久久综合亚洲一区二区三区 | 亚洲a级| 国产欧美日韩在线人成aaaa | 国产99视频精品免费观看7 | 成人性视频在线 | 国产免费一级视频 | 在线a亚洲视频播放在线观看 | 一个人看的日本免费视频 | 亚洲欧美在线看 | 国产亚洲女在线精品 | 欧美激情性色生活片在线观看 | 久久这里只有精品视频99 | 国产精品自拍第一页 | 久久一区二区三区99 |