java - 启动tomcat7 :run maven plugin within eclipse and debug

标签 java eclipse maven debugging tomcat

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

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

我已经设法从 eclipse 中启动 tomcat 服务器。 webapp 在 tomcat 中很好地启动,如果我选择的话,也可以在 Debug模式下启动:

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

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

问题
我在我的 webapp 的代码中设置了一个断点,并从 eclipse 中以 Debug模式重新启动 tomcat。现在,断点不活动:它没有 Activity 断点所具有的那个小勾号,我知道代码已执行,但它不会在断点处停止。

最佳答案

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

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

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

关于java - 启动tomcat7 :run maven plugin within eclipse and debug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173375/

相关文章:

Eclipse Tomcat v8.0 404 错误

java - 是否可以使用spark-avro数据源创建Spark应用程序并通过 'java -jar'执行它

maven - 如何将 maven 模块导入 Android Studio 项目

java - 在 Java 中使用 Apache Common 的 WhoisClient

java - 这是最好的方法吗?有更干净的方法吗?

java - Eclipse:如何判断我是在运行还是调试非服务器应用程序?

eclipse - 如何跟踪 Eclipse 更新站点的下载?

java - 在 JAX-WS 中获取 Web 服务上下文监听器?

java - Firebase Recyclerview 检索

java - 没有与文件名或扩展名 "true"关联的序列化程序?