我正在尝试在build.scala中定义JAVA_OPTS,以便为运行和测试任务指定调试端口和配置文件,但它不起作用。我启动activator
,然后run
或test
。
这是我的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"
)
我搞砸了什么?谢谢你的帮助。
答案 0 :(得分:3)
Play并不真正支持fork in run;它可能只是忽略了那个设置。那么你的javaOptions
将无效,因为没有新的JVM。您需要做的是使用这些选项启动激活器(或sbt)本身,或者设置其中一个环境变量JAVA_OPTS
,SBT_OPTS
或ACTIVATOR_OPTS
。还有一个-jvm-debug
激活器来添加调试器。
答案 1 :(得分:0)
启动控制台时,您可以要求Play启动JPDA调试端口。然后,您可以使用Java调试器进行连接。使用play debug命令执行此操作:
$ play debug
当JPDA端口可用时,JVM将在引导期间记录此行:
在地址:9999
侦听传输dt_socketNote: 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.
答案 2 :(得分:0)
启动Activator并进行调试
activator -jvm-debug 9999