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

时间:2015-03-20 18:24:19

标签: java eclipse maven debugging tomcat

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

详情
webapp是一个maven工件,我在eclipse中使用m2e插件来连接maven和eclipse。

我设法从eclipse中启动了tomcat服务器。如果我选择的话,webapp很好地在tomcat中启动,也在调试模式下启动:

  • 在eclipse中,右键单击项目
  • Run As> Maven build ...(不是" Maven build")
  • 一个窗口打开。在文本字段"目标"中,输入" tomcat7:run"
  • 点击“应用”
  • 点击“运行”

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

问题
我在webapp的代码中设置了一个断点,并在eclipse中以调试模式重启tomcat。现在,断点没有活动:它没有活跃断点所具有的那个小标记,我知道代码已经执行,但它并没有在断点处停止。

2 个答案:

答案 0 :(得分:3)

有两种方法可以解决这个问题,你需要其中一种或两种。打开运行配置,然后

问题+解决方案1(前叉)
如果tomcat在另一个VM中分叉,那么您需要添加参数 forkMode ,其值为从不。这使得eclipse可以通过"到tomcat的VM并在那里设置断点。

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

答案 1 :(得分:0)

转到eclipse调试视图,如果选中该复选框,请检查断点的断点选项卡视图。