場景簡介:Springboot 項目,開發工具IDEA
報錯分析:在另外一個項目中都能正常run的,作為子模塊加入到怎么會這樣呢,初步分析是jar包沖突
打開maven中的jar包關系圖
從圖中可以看到有兩個jar中都引用到了guava,其中我們但是版本不同,jvm引用了高版本的guava,結果高版本的guava沒有報錯程序所需的
方法,所以報錯。
解決辦法:找到依賴之后,將傳遞依賴排除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
總結:項目整合經常會遇到jar包沖突的情況,在IDEA中使用maven的show dependences,可以很明顯看到沖突在哪,這時找到依賴將其中一個排除掉即可。