我有一个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中调试项目?
答案 0 :(得分:27)
我发现这是最简单的解决方案:(使用IntelliJ IDEA)
IntelliJ中的:
转到“编辑运行配置”
创建新的远程配置(端口9999,所有其他详细信息保留默认值)
返回IntelliJ并运行新的调试配置(不要忘记设置断点)
从命令行运行:
sbt -jvm-debug 9999 run
答案 1 :(得分:8)
最简单的解决方案。
编辑配置... - >添加SBT Task
(不是Remote
任务)。
指定SBT任务:run
。
使用 - 调试按钮
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相比,它很难学,运行,使用,调试......
以下是我的步骤:
activator -jvm-debug 9999 "run 11111"
(我使用端口9999进行调试,使用端口11111运行我的Play项目)