Eclipse debug ‘Source not found’

來源:互聯網
上載者:User

標籤:debug   source not found   source jar   maven   jar version   

用Eclispe進行Debug時一直被一個問題所困擾:Source not found.

問題產生的原因是調試進入了一個沒有源碼的jar包裡。

 

簡短說明:

Edit Source Lookup Path… 可以解決Debug過程中找不到源碼的問題,PS,需要重啟服務。

Configure Build Path 中可以給jarattach上源碼,這個管的是閱讀代碼時可以看到jar包裡的內容。

 

具體步驟:

之前通過點擊Edit Source Lookup Path … 來加進源碼搜尋路徑

但經常遇到的問題是加入後一點OK,介面閃一下,就又回到這個’Source not found’介面了。

 

今天因為一定要調試源碼裡的東西,所以徹底搞了一下這個問題。

 

我的環境是: + Maven 3.2.1

首先把源碼工程down下來,並且手動打了source.jar,如果不願意打source.jar,也可以直接引目錄,先進入src/main/java目錄下,與com包在同一級目錄下,然後執行命令:

將產生好的xxx-source.jar剪下粘貼到外部的一個目錄裡。然後在Edit Source Lookup Path … 裡Add … -> ExternalArchive

選擇你要加要xxx-source.jar

這時介面會出現一閃,然後又回到’Edit Source Lookup Path …’這個介面的情況,其實,關閉服務重啟一下就好了,我一直不明白為什麼,又是重新加,又是想辦法加別的jar或工程,最後搞亂了。

如果加了不該加的Lookup Path,可以點菜單Run -> Debug Configurations … -> Source 來管理LookupPath

下面是一個複雜的例子:

用Maven管理大規模jar包集和項目集時,經常遇到引入多個jar包的版本的問題,例如當前有三個工程,P1引用P2,P2引用P3,P2依賴了A-1.0.jar,P3依賴了A-2.0.jar。根據Maven選擇jar包,先顯式,再深度,後順序的原則,A-1.0.jar最終被終會被工程所依賴,因此,在Configure Build Path時,要把1.0的源碼包attach給這個jar,在debug時Edit Source Lookup Path… 時也要把1.0的源碼包選中,我在實驗時就是把2.0的源碼包編給了Lookup Path,然後在Configure Build Path時無論把哪個包attach上,都在debug時發生了行位移。

 

所以,Configure Build Path和Edit Source Lookup Path是兩回事,一個管閱讀代碼,一個管調試代碼,但對於那種入口代碼,也就是前面沒有代碼調它,而是容器調用的代碼,一定要先閱讀到它,才能打上斷點啊,不是嗎?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.