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-web
D:\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的帮助手册