- 提出问题:
一个程序,部署在自己的电脑上,debug调试,相信大家都会,但是,如果我想debug调试非本地部署的程序怎么办呢。比如测试服务器上部署的程序。
其实这样的需求也是经常有的,比如一个大型的项目有很多模块,也有很多自己的或外部的依赖,不可能在自己电脑上整个都搭建一整套完整的环境。先不管有多复杂,有时候公司的电脑配置再不给力,部署一个大型程序更是雪上加霜。通常这样的程序都是直接部署到专门的开发或测试环境里面。很少在自己电脑上部署测试。再加上运用像jenkins这样的自动化的部署工具,部署只是点几下按钮的事儿。不比在本地起一个tomcat多出多少工作。就更没有必要在本地部署程序测试了。包括开发自测和测试人员的测试。当然这只是说的稍微大一点的项目。一个小的独立的项目在本地部署测试还是很方便的。
好了,言归正传,既然部署到其它地方,想debug一步一步地调试就不能像在本地部署一样了。也就是文章一开始提出的问题。
- 解决问题:
其实解决起来也很简单,
-
- 设置tomcat
在目标程序运行的tomcat的catalina.sh文件中加上
JAVA_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=26310"
当然这可能只是启用远程debug的最少配置,这些启动参数当然可以跟其它JVM参数一块设置。像常见的设置堆内存大小,垃圾收集器,gc日志打印,堆栈转储等等的参数。
好了,这就是目标tomcat需要做的所有设置了,简单吧。注意这里设置的address=26310,这是本地和远程程序通信的端口,要和后来在IDE工具中设置的一致。做完这些工作,就差不多成功一半了。
- IDEA 设置
- 设置tomcat
点击如图位置
再点击"Edit Configurations..."
出现如下界面,再点击左上角的加号
出现如下图的界面,点击Remote
如图所示
设置完了点击apply
想要远程调试就点击如图的位置选择你刚才设置好的
然后点击debug按钮就可以在你的机器上打断点调试你的远程部署的代码了
- 其它IDE工具我不怎么用,就不知道怎么设置了,需要的自己研究下。