在IDEA中閱讀代碼時,時常會跟蹤到jar包源碼層面,會點擊Download Sources,源碼包就會被下載到idea中

但是當pom.xml引入了新的版本,此時,再次閱讀源碼時,就會提示”library source does not match the bytecode for class“ 庫源與類的字節碼不匹配
原因是:源碼文件(xxx-sources.jar)和字節碼文件(xxxx.jar)不匹配
網上的解決方案無非以下幾種
1、使用了lombok,禁用lombok
2、invalidate caches /restart清空idea緩存重新啟動
3、刪除maven倉庫中的jar包
經過以上嘗試,都無法解決,最終在stack overflow中找到了解決方案
解決方案:刪除xxxx.jar 對應的 xxx-sources.jar文件,重新Download Sources
① 定位該class類在jar包中的位置
如下所示:CommonsMultipartFile.class 文件在 org.springframework.web:4.3.12.RELEASEjar包中

② 右鍵此類,選擇Copy--->Copy Path,找到該類的存儲位置

③ 進入該目錄,刪除所有后綴帶-sources.jar的文件
rm -rf spring-web-4.3.12.RELEASE-sources*

打開idea(無須重啟),就沒有錯誤提示了
參考鏈接:https://stackoverflow.com/questions/36753524/library-source-does-not-match-the-bytecode-for-class
