启动tomcat7:在eclipse和debug中运行maven插件

Dan*_* S. 6 java eclipse debugging tomcat maven

我想在eclipse中调试一个webapp.我发现tomcat和webapp在调试模式下在eclipse中运行,但是webapp代码中的断点没有任何效果.

细节
webapp是一个maven工件,我在eclipse中使用m2e插件来连接maven和eclipse.

我已经设法从eclipse中启动tomcat服务器.webapp很好地在tomcat中启动,如果我这样选择,也可以在调试模式下启动:

  • 在eclipse中,右键单击项目
  • 运行方式> Maven构建...(不是"Maven构建")
  • 一个窗口打开.在文本字段"目标"中,输入"tomcat7:run"
  • 单击"应用"
  • 单击运行

tomcat服务器启动运行,其stdlog打印到eclipse中的窗口.我也可以方便地停止它并在调试模式下再次启动它.到目前为止,这就是我想要的和我期望的.

问题
我在webapp的代码中设置了一个断点,并在eclipse中以调试模式重启tomcat.现在,断点未激活:它没有活动断点所具有的那个小刻度,我知道代码已执行,但它不会在断点处停止.

dre*_*eua 3

有两种方法可以解决此问题,您将需要其中一种或两种。打开您的运行配置,然后

问题+解决方案1(fork)
如果tomcat在另一个VM中fork,则需要添加参数forkMode,其值为never。这允许 eclipse “查看”tomcat 的 VM 并在那里设置断点。

问题+解决方案 2(源)
在具有 Maven 父工件和子工件的某些设置中,Eclipse 可能不知道某些子项目的源属于您的 web 应用程序。其症状是在断点处停止执行,但是eclipse并不会自动跳转到源位置,而是告诉你源未知。
要解决此问题,您需要将子项目的源添加到运行配置中:在运行配置中,转到 Source > Add... > Java Project 并选择包含您可能想要调试的源代码的所有相关项目。