需求背景:一個用spring舊的版本寫的項目中接入了新的版本寫的日誌監控平臺,引入了其他版本的寫的自定義脫敏依賴包,導致了項目現在啓動不起來,爆出的錯誤如下:
java.lang.NoSuchMethodError: org.springframework.expression.spel.SpelParserConfiguration.<init>
多個版本中都出現了該類,然後編譯器蒙圈了,找不到,最終決定了用4.2.7。
然後下面是解決步驟,先選擇一個想要去除的版本進去,然後選擇scrool from source,定位到那個jar包,然後複製他的ga號(右鍵open libary settings),使用mvn dependency:tree >temp,在該文件中找到需要剔除的其他的版本都源自於哪裏,exculed掉
pom
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
</exclusion>
gradle
exclude group: 'org.springframework', module: 'spring-expression'
重啓解決。