使用自定义配置在调试模式下运行sbt项目

时间:2011-11-12 12:11:19

标签: scala sbt

我想使用特殊配置在我的sbt 0.11项目中引入调试模式。 我尝试使用以下代码实现此功能,但不幸的是,它似乎没有按预期工作。我正在启动debug:run但运行不会按预期暂停。

object Test extends Build {
  lazy val root = Project("test", file("."))
    .configs( RunDebug )
    .settings( inConfig(RunDebug)(Defaults.configTasks):_*)
    .settings(
      name := "test debug",
      scalaVersion := "2.9.1",
      javaOptions in RunDebug += "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005",
      fork in RunDebug := true
    )

  lazy val RunDebug = config("debug").extend( Runtime )
}

3 个答案:

答案 0 :(得分:6)

好的,可以使用以下内容:

object Test extends Build {
  lazy val root = Project("test", file("."))
    .configs( RunDebug )
    .settings( inConfig(RunDebug)(Defaults.configTasks):_*)
    .settings(
      name := "test debug",
      scalaVersion := "2.9.1",
      javaOptions in RunDebug ++= Seq("-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"),
      fork in RunDebug := true
    )

  lazy val RunDebug = config("debug").extend( Runtime )
}

现在我可以使用debug:mode在调试模式下运行我的代码。

答案 1 :(得分:2)

只需在调试模式下运行sbt项目,只需执行

JAVA_OPTS = -Xdebug -Xrunjdwp:transport = dt_socket,server = y,suspend = y,address = 5005

然后

sbt run将在调试模式下运行SBT,您可以在eclipse中创建远程调试配置并连接到它。 这是一个相当蹩脚的,但是当你有一个多模块游戏项目并希望在调试模式下运行其中一个模块时很有用

答案 2 :(得分:-1)

在Intellij IDEA中,我只是在Dedug模式下启动该程序,它似乎无需进一步配置即可正常工作。