如何在Windows中为SBT启用远程调试?

时间:2014-04-28 04:12:11

标签: scala intellij-idea sbt remote-debugging

我想完成运行等效的

sbt -jvm-debug 5005

但是我似乎无法在Windows中传递args。这就是我所看到的

>sbt -jvm-debug 5005
[info] Loading project definition from [myProject]
[info] Set current project to [myProject] (in build file myProject)
[error] Expected letter
[error] Expected symbol
[error] Expected '!'
[error] Expected '+'
[error] Expected '++'
[error] Expected ';'
[error] Expected end of input.
[error] Expected 'show'
[error] Expected '*'
[error] Expected '{'
[error] Expected project ID
[error] Expected configuration
[error] Expected key
[error] 5005
[error] ^
[error] Not a valid command: jvm-debug
[error] Not a valid project ID: jvm-debug
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: jvm-debug
[error] jvm-debug
[error]          ^                  

我希望能够从Intellij远程调试此应用程序。任何帮助都会很棒!

3 个答案:

答案 0 :(得分:11)

set SBT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
sbt run

是Windows 7上唯一可行的解​​决方案。

答案 1 :(得分:9)

似乎Windows版本的SBT没有定义此功能。

在Linux上,它在$SBT_HOME/sbt/bin/sbt-launch-lib.bash中定义为

addDebugger () {   
  addJava "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1" 
}

通过在Windows上设置SBT_OPTS环境变量,您可以获得相同的结果。

像这样运行SBT,使调试器侦听端口5005

set SBT_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" && sbt

答案 2 :(得分:1)

当前,我下载了最新更新的sbt,确切是sbt 1.3.3,但是当我想在项目中启用调试时,我遇到了与您相同的问题。调查中,我发现我自己的根目录C:\ Program Files(x86)\ sbt \ bin中没有此文件(sbt-launch-lib.bash),所以当我在另一台计算机上看到该文件时,我会注意到该sbt ,它是1.2.8,是的,它具有我之前提到的文件,因此我卸载了sbt 1.3.3并安装了sbt 1.2.8并将其放入我的项目sbt -jvm-debug 9999中。