用eclipse调试sbt源代码

时间:2013-11-15 22:01:05

标签: scala sbt sbteclipse

当我调试我的sbt构建时,我想导航到sbt源代码。

通过使用sbt eclipse插件我可以调试,例如我的Build.scala文件,太棒了!我也可以使用:

来包含sbt插件源代码
> reload plugins
> eclipse withSources=true

但sbt本身的来源不在sbt-eclipse生成的.classpath文件中。我看到源jar文件位于常春藤缓存中,但缺少sourcepath条目:

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

我希望生成的类路径具有如下所示的源路径。 (这是手动编辑的,我想让它由sbt-eclipse生成):

<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 eclipse 2.4.0测试)

我看到这个sbt-dependency-manager插件,但这看起来很尴尬......

有没有更简单的方法来查看sbt源以及我的sbt构建?

1 个答案:

答案 0 :(得分:0)

作为sbt-dependency-manager的创始人,我必须承认,获取源代码不仅存在问题。您可以手动下载源并手动将它们附加到调试器,但Eclipse仍然无法使用它们。

sbt-dependency-manager不仅可以下载,还可以下载repackage jars。所以这样你应该打开2个bug: - ):

  • 关于sbt-eclipse中的获取源
  • 关于SBT本身的源布局

我试图避免这个问题,这只是我所知道的解决方案。哦,你当然可以改用Idea或Ensime--但这对我来说是不可接受的。另外我根本不使用sbt-eclipse,因为sbt-dependency-manager使它无用。