2008-10-25 21 views
2

當我的調試器進入一些沒有相應源的類文件 時,我遇到了這個障礙。發現它往往是困難的:對於流行的Java庫,「attach source」可以變得更容易嗎?

  • 你必須尋找託管各自的項目, 的網站,並找到自己的``下載源「頁面(例如,我最後一次搜索 的JPA API,並花了我幾小時才能獲得來源)。或者,您可能需要 將其從版本控制中檢出。

  • 您需要知道您使用的確切版本。否則 調試器可能步入的意見和空行:)

  • 沒有約定包裝的源代碼—一些 項目包括它在罐子本身;有些提供單獨的zip文件; 其他人將其放在zip中的src/子文件夾中。

我知道Maven有從庫下載源和 包括它在src路徑產生一個IDE配置文件時的能力。但 Maven的回購在內容方面很差—幾個庫實際上有 他們的來源上傳。

爲什麼它可以變得簡單時如此複雜?我們可以有 一些中央回購,它將一個類文件(或其散列)與源代碼文件(或其鏈接)進行編譯( )。也許是一個相當龐大的回購,但 相當簡單的結構。 IDE插件可以查詢它以自動獲取所需內容。

你有沒有經歷過同樣的事情?

你如何獲得附加的來源?

回答

0

它可能是複雜的,但它是值得的初步努力。

我做了以下方法: 在我的項目目錄我有三個主要的目錄,

  • SRC(我自己)
  • LIB
  • 增刊(來源/ javadoc文檔時,沒有源存在)

我在每個庫中放入一個zip文件,其中包含源代碼。在intellij中,這不僅給我調試超級大國,還給javadocs。

你是對的,獲得來源是一種痛苦。有時來源會在lib的.jar文件中傳遞,有時作爲一個單獨的下載(我最喜歡的),有時我必須創建一個單獨的cvs/svn目錄,在那裏我可以檢出源代碼。我通常需要按照我喜歡的方式重新打包它們,即使以zip格式提供。

我對maven持懷疑態度。我只是不喜歡將我選擇庫的決定交給程序。

0

我們做一些類似於Andreas的事情。我們的lib目錄有子目錄進一步分類。其中一個子目錄是源代碼或調試代碼,其中包含我們要調試的所有JAR的源JAR/ZIP。做一次,你很好。我們爲罐子和源罐使用IVY存儲庫。

1

自己還沒有看到滿意的解決方案。

我傾向於推出我自己的回購,沒有Maven(Maven很好,但它不會點擊我)。我運行類似於BSD端口系統的東西,也就是一個包含很少Ant構建文件的大型結構化樹。這些構建文件可以檢出項目的源代碼,從樹中的其他地方取出它的依賴關係並構建它(這些是爲了我想要構建的項目 - 也就是我的項目),或者從其他地方(可能是外部的)源或我自己的二進制文件庫)。

該系統可以很容易地擴展到拉動src罐子,但我現在手動做。

2

m2eclipse和IDEA都會爲任何依賴項下載源代碼和javadoc。可以通過右鍵單擊依賴項(或整個項目(如果需要所有源))並單擊Maven->下載源來下載m2eclipse源代碼。

download sources screenshot

在m2eclipse的更新版本還可以自動轉到窗口 - >首選項下載源...->的Maven,然後選擇「下載神器源」選項。當您在依賴項jar中打開一個當前沒有可用來源的類型時,Maven將在後臺下載源代碼並在後臺更新源代碼附件。

Maven preferences screenshot

相關問題