新项目决定用现在流行的maven结构来发开。
但由于maven的编译结果不是标准的sevlet结构,原来的eclipse+tomcat插件无法直接debug。
网上都说用jetty来调试,那就改用jetty吧。
用Jetty调试有两种方式。一开始网上找到的介绍比较多,用外部工具的方式,其实提麻烦的。
1.外部工具方式
首先要配置一个外部工具,来运行JETTY
Run->External Tools->External Tools Configurations...
双击Program 新建一个外部应用
在Main选项卡里Location里选择mvn的运行目录。比如我的:
/home/wang/install/apache-maven-3.2.3/bin/mvn
Working Directory选择要调试的WEB项目
Arguments 里输入jetty:run
(这应该相当于在命令行模式下进入项目根目录(pom.xml所在目录)。然后输入mvn jetty:run来启动WEB项目)
然后在Environment选项卡里,设置MAVEN_OPTS变量。记得用tomcat时也会输入CATALINA_OPTS,可以设置jvm参数,jmx接口等。
但这次主要是为了设置debug接口,值如下:
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y。
配完之后,jetty服务器就能直接跑了。但如果想debug还要配置Remote Java Application.
Run->Debug Configurations,双击新建Remote Java Application
只需编辑Connect选项卡即可
Project选择要调试的WEB项目
Connection Type使用默认的Standard(Socket Attach)
Host: localhost
Port:4000
配置好后保存。
开始Debug时,先启动外部工具:jetty。控制台显示如下:
Listening for transport dt_socket at address: 4000
再开启Remote Java Application
就可以看到熟悉的debug信息了。
2.eclipse插件方式
进入eclipse 的marketplace界面。在Search选项卡的Find输入框里输入jetty。
可以找到Eclipse Jetty 的插件,我当时的版本是3.9.0。安装并重启eclips.
进入Debug Configuations的界面,可以发现多了一个Jetty Webapp的debug选项。
双击它新建一个Jetty Webapp项目,Project选择要调试的WEB项目。
WebApp Folder不用动,src/main/webaps就是maven的默认结构。
Context Path填好后,就可以直接debug了。 比方式一简单的多。