Intellij IDEA 遠程debug、遠程tomcat部署項目
加班比較多,很少時間學其它東西了,最近項目部署比較復雜,本地運行比較困難,因此想在測試服務器環境debug和部署,遠程部署還是有點問題,先記錄一下
環境
apache-tomcat-7.0.47
Intellij IDEA 2016
遠程debug
tomcat 的Catalina.sh 裏面有個參數 JPDA_ADDRESS=”8000”,默認為8000。啟動tomcat時,用 ./catalina.sh jpda start 代替原本的 ./startup.sh 來啟動,然後在Intellij 裏面做如下配置:
保存後,點擊debug就能連接到服務器上tomcat的8000端口並打印出連接成功的信息。
當服務器tomcat停止,或手動點擊Intellij的斷開時,會打印出斷開連接的信息
因為服務器8000端口被占用,我這裏修改了8000端口為6666
遠程部署
遠程部署一直有問題,現在可以拷貝web編譯目錄到服務器了,但是不能直接通過IDE啟動和停止。
主要參考了stackoverflow的這一個回答:
http://stackoverflow.com/questions/14085371/tomcat-intellij-idea-remote-deploy
服務器還是Linux,Catalina.sh 我嘗試著加了如下三個配置,都沒有成功,最後發現是沒有雙引號,加了以後可以了。這三個參數配置分別為
<!-- 第一個參數JAVA_OPTS,因為引用了聲明的
$JAVA_OPTS,所以這個參數要加在JAVA_OPTS參數聲明的後面 -->
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1099"
<!-- 第二個參數 -->
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
<!-- 第三個參數 -->
JAVA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
還有個回答中提到的一個參數,是在terminal裏面輸入的命令,不用直接加在Catalina.sh 裏面。
#控制臺 export 輸出環境變量參數
export JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
在上述基礎上,Intellij 的remote tomcat配置如下
然後按照上面圖片的配置,其中path from root 的路徑(服務端tomcat的webapps路徑)要修改一下,不然會多出來一個aucs-web,修改後正確路徑為
/%TOMCAT_HOME%/webapps/D:\workspace\IDEA\jieo\aucs-web\target\aucs-web
或者:
/%TOMCAT_HOME%/webapps/aucs-webD:\workspace\IDEA\jieo\aucs-web\target\
這時候,在服務端啟動tomcat,再到IDE點擊 Run 或 debug 時能夠拷貝(部署)文件到服務器,debug模式需要加另外一個配置:即上面講的遠程debug設置的端口8000(我改成了6666)
參考資料主要有以下幾個:
http://www.codeweblog.com/ubuntu10-04-remote-tomcat-debug-configuration-under-the-idea8-0/
http://www.codeweblog.com/stag/intellij-idea-remote-tomcat-deploy/
jetbrans官網,鏈接忘了
還有就是Intellij IDEA 中F1的幫助手冊
Intellij IDEA 遠程debug、遠程tomcat部署項目