使用IntelliJ IDEA中的Play调试SBT项目

时间:2014-03-05 10:41:54

标签: intellij-idea playframework sbt

我有一个SBT项目

在这个项目中,我有一个子游戏项目和其他项目

来自我的构建文件的示例:

 lazy val subProj1 = Project(id = "sub-proj-1", base = file("sub1"))
.settings(...)...

 lazy val subProjPlay =  play.Project("play-proj", 1.0 , path = file("web"))

需要从IntelliJ IDEA调试播放服务器。

要运行项目,我在命令行上使用sbt run

如何在IDEA中调试项目?

4 个答案:

答案 0 :(得分:27)

我发现这是最简单的解决方案:(使用IntelliJ IDEA)

IntelliJ中的

转到“编辑运行配置”

enter image description here

创建新的远程配置(端口9999,所有其他详细信息保留默认值)

enter image description here

返回IntelliJ并运行新的调试配置(不要忘记设置断点)

从命令行运行:

 sbt -jvm-debug 9999 run

答案 1 :(得分:8)

最简单的解决方案。

  1. 编辑配置... - >添加SBT Task(不是Remote任务)。 指定SBT任务:run

  2. 使用 - Debug调试按钮

  3. 运行已创建的SBT Task

答案 2 :(得分:2)

如果您在本地安装了Play分发版,请在命令行上使用play debug run并连接到IDEA中localhost端口上的9999

来自官方Play 2.2.x文档中的Debugging section in Using the Play console

  

启动控制台时,您可以要求Play启动JPDA调试端口。   然后,您可以使用Java调试器进行连接。使用play debug命令   这样做

如果您没有它(并且由于某种原因不想安装它),请在IDEA中添加Remote运行配置,它将为您提供有关您应该使用的命令行参数的提示启动SBT时,例如

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

当您启动SBT时,可能会或可能不会像启动SBT jar一样简单,只需使用上面的命令配置JVM以在调试模式下运行。

答案 3 :(得分:1)

IntelliJ IDEA 2016.1.1&& Play Framework 2.5.3

对我来说,无论我如何设置(为Play 2应用程序或SBT任务创建新的运行/调试配置,指定调试端口,在运行或调试模式下执行),在IntelliJ IDEA 2016.1.1企业版中,IDEA无法打开调试端口(默认为9999),因此无法进行调试。

禁用sbt-fork-run-plugin后(在/project/paly-fork-run.sbt中注释),它可以工作!!!

我是Play框架的新手,并且发现了许多错误......与RoR相比,它很难学,运行,使用,调试......

以下是我的步骤:

  1. 禁用sbt-fork-run-plugin(在/project/paly-fork-run.sbt中注释)
  2. 执行activator -jvm-debug 9999 "run 11111"(我使用端口9999进行调试,使用端口11111运行我的Play项目)
  3. 在IDEA中,添加新的运行/调试配置,选择,将调试端口设置为9999
  4. 调试新创建的配置