文章來源: https://studyidea.cn/idea_breakpoint_not_usespring
某個多模塊項目中使用多個版本的 Spring,如 Spring 4,Spring 5,在使用 IDEA Debug 過程當中發現,Spring 部分 jar 如 spring-core 中的上面斷點,IDEA 能夠成功進入。可是有部分如 spring-context IDEA 始終沒法進入斷點。緩存
當 IDEA 進入 spring-core 斷點時,打開 spring-context 任意源碼,能夠發現 IDEA 提示 source code does not match bytecode。ide
看到這個提示,大概知道了問題。ui
主要緣由爲應用中使用 Spring4 ,調試過程當中卻選擇 Spring5 源碼,因爲兩個版本確定存在一些改動,致使 Spring5 的源碼對應不上 Spring4 字節碼, IDEA Debug 沒法進入相關斷點。idea
知道問題的緣由,須要找到解決辦法。剛開始覺得 IDEA 緩存問題,因而 Build-Rebuild Project 從新構建工程,從新調試,並無什麼鳥用。debug
沒辦法,只能在網上搜索相關解決辦法,因而乎在萬能的 stackoverflow 找到解決辦法。調試
解決方案:code
若是應用中存在多個版本 jar 包時,IDEA 調試過程將會看到以下提示。blog
在這裏咱們能夠選擇相應的版本進行調試。get
若是很不幸,就像我同樣,沒有顯示這個提示,極可能某次調試過程禁用這個功能。不過也不要緊,咱們能夠從新在設置 Preferences/Debuggers 從新打開該選項。如圖所示:
歡迎關注個人公衆號:程序通事,得到平常乾貨推送。若是您對個人專題內容感興趣,也能夠關注個人博客:studyidea.cn