2013-11-15 63 views
2

我想在調試我的sbt版本時導航到sbt源代碼。用eclipse調試sbt源碼

通過使用sbt eclipse插件,我可以調試例如我的Build.scala文件,非常棒!我可以包括SBT通過使用插件源太:

> reload plugins 
> eclipse withSources=true 

但來源SBT本身不是由SBT-蝕產生的.classpath文件。我看到源罐子在常春藤緩存,但源路徑條目丟失:

<classpathentry kind="lib" 
    path="/home/lee/.ivy2/cache/org.scala-sbt/main-settings/jars/main-settings-0.13.1-RC2.jar" 
/> 

我想生成的類路徑有類似下面的源路徑。 (這是手動編輯的,我想有它由SBT-蝕產生的):

<classpathentry kind="lib" 
    path="/home/lee/.ivy2/cache/org.scala-sbt/main-settings/jars/main-settings-0.13.1-RC2.jar" 
    sourcepath="/home/lee/.ivy2/cache/org.scala-sbt/main-settings/srcs/main-settings-0.13.1-RC2-sources.jar" 
/> 

(與SBT 13.1 RC2和SBT蝕測試2.4.0)

我看到這個sbt-dependency-manager插件,但看起來很尷尬......

有沒有一種更簡單的方法來查看sbt來源以及我的sbt構建?

+0

這實際上是我們發佈sbt設置爲配置的問題。您可以在發佈時使用非標準來源「標誌」打開關於它的錯誤嗎?這就是爲什麼這些沒有出現。 IIRC,sbt正在使用字符串「srcs」,但其他人使用「來源」或一些這樣的愚蠢。 – jsuereth

+0

增加的問題https://github.com/sbt/sbt/issues/991 –

回答

0

作爲sbt-dependency-manager的創始人,我必須承認,獲取資源不僅有問題。您可以通過手動下載源代碼並手動將它們附加到調試器,但Eclipse仍然無法使用它們。

sbt-dependency-manager不僅下載,還有repackage jars。因此,在這種方式,你應該打開2個錯誤:-):

  • 關於SBT-日食
  • 有關人士SBT本身的佈局獲取來源

我試圖避免這個問題,這是隻有我知道的解決方案。哦,當然你可以切換到Idea或Ensime--但這對我來說是不可接受的。另外我根本不使用sbt-eclipse,因爲sbt-dependency-manager使它無用。

+0

我試着手動附加sbt源代碼(它們似乎被下載到.ivy/cache,只是沒有放在.classpath中)。在編輯類路徑之後,至少在我嘗試過的一種或兩種情況下,eclipse導航到sbt源代碼。源佈局導致失敗的地方在哪裏? –

+0

上次嘗試時,Eclipse調試器無法正確處理「步入」,「跳過」。如果你有一切工作,請提供你的Scala IDE和Eclipse版本。 – Ezhik

+0

'進入'當然 – Ezhik