在Intellij Idea中调试外部库的代码

时间:2017-04-13 15:15:09

标签: scala intellij-idea sbt

我正在使用SBT和IntellijIdea来运行项目。我基本上需要开发一个依赖于其他库来完成其工作的模块。但是,我想在调试项目时“看到”库上的控制流。那就是:

-> callToLibrary(...)

在调试时,我希望能够输入此调用并查看外部库的代码。为了做到这一点,Intellij Idea和SBT有哪些配置?

规格

为了更精确地假设我的项目具有以下结构:

project-name
-> .idea
-> project[project-name-build]
-> src -> main
       -> test
-> target
-> build.sbt
-> External Libraries

假设我的外部库的源代码存储在directory中写入的路径中的某个文件中。假设这个源文件只是一个从Github克隆的项目。

SBT文件和Intellij Idea中的配置需要什么才能使项目正常工作(不要抱怨导入)并且能够调试项目和外部库?

1 个答案:

答案 0 :(得分:2)

确保build.sbt中有transitiveClassifiers := Seq("sources"),以便所有库都下载了源代码。然后你需要做的就是像往常一样调试你的应用程序。当进入库代码时,将显示源代码。此外,如果源不可用,IntelliJ将为您反编译一个类。您的build.sbt

中有类似的内容
lazy val commonSettings = Seq[sbt.Def.Setting[_]](
  scalaVersion := "2.11.8"
  // ...
, transitiveClassifiers := Seq("sources")
) 

lazy val root = 
  Project( 
    id = "some_name"
  , base = file(".")
  , aggregate = Seq( ... )
  )
  .enablePlugins(...)
  .settings( commonSettings: _* )
)