用IDEA调试Play工程
IDEA的版本是14.0.1,运行在MAC OS X Yosemite上。
IDEA已经装了Scala插件,但是在新建工程中,Scala的选项中并没有Play框架,不知道什么原因。
导入Play工程
我想导入从Github上下载的一个play工程。
当直接用IDEA的import project导入build.sbt时,虽然可以正常导入,但是IDEA并不能识别play的目录结构。
所以,首先安装activator, 然后在当前工程目录下运行activator, 进入activator的shell之后,输入idea,执行。这时候Activator会生成一个IDEA工程,导入就可以了。
设置调试环境
首先需要让activator在run 这个play工程时,可以接受远程调试。
set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>"
在Linux和mac下,export "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>"
这里把port设成想要的端口。这次设成9999
然后在IDEA最上边的run目录下选择 edit configuration。进行以下设置
Transport : Socket
Debugger mode: Attach
Host: localhost
Port:9999
name:自己起一个。
进行调试
首先在项目里设置断点。
在terminal里执行前边提到的export "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>"
接着执行activator ~run。会显示
Listening for transport dt_socket at address: 9999
...........
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0%0:9000
然后在IDEA里启动调试,选择刚才建立的那个调试选项,开始调试
在IDEA的Console中会显示
Connected to the target VM, address: 'localhost:9999', transport: 'socket'
打开浏览器,访问localhost:9000, 就会在IDEA中看到程序在断点处停了下来。下面就可以调试了。