3

我试图在 build.scala 中定义 JAVA_OPTS 以便为运行和测试任务指定调试端口和配置文件,但它不起作用。我启动activator然后runtest。这是我的 build.sbt :

name := "machinchose"

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  javaWs
)

Keys.fork in run := true

javaOptions in run ++= Seq(
    "-Xdebug",
    "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9997",
    "-Dconfig.file=conf/developpement.conf",
    "-Xms128m",
    "-Xmx1024m"
)

Keys.fork in Test := true

javaOptions in Test ++= Seq(
    "-Xdebug",
    "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9997",
    "-Dconfig.file=conf/test.conf",
    "-Xms128m",
    "-Xmx1024m"
)

我搞砸了什么?谢谢你的帮助。

4

3 回答 3

3

Play 并不真正支持 fork in run;它可能只是忽略了该设置。javaOptions因此,由于没有新的 JVM,因此您将无法工作。您需要做的是使用这些选项启动 activator(或 sbt)本身,或设置环境变量JAVA_OPTSSBT_OPTSACTIVATOR_OPTS. 还有一个-jvm-debugto activator 来添加调试器。

于 2014-06-30T17:51:00.933 回答
0

您可以要求 Play 在启动控制台时启动 JPDA 调试端口。然后,您可以使用 Java 调试器进行连接。使用 play debug 命令执行此操作:

$播放调试

当 JPDA 端口可用时,JVM 将在引导期间记录此行:

在地址监听传输 dt_socket:9999

Note: Using play debug the JPDA socket will be opened on port 9999. You can also set the JPDA_PORT environment variable yourself using set JPDA_PORT=1234.
于 2014-06-30T15:30:22.413 回答
0

启动 Activator 并进行调试

activator -jvm-debug 9999

于 2014-10-29T21:17:26.943 回答