用IDEA除錯Play工程

devos發表於2014-11-21

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中看到程式在斷點處停了下來。下面就可以除錯了。

 

相關文章