Eclipse Mars - Web 应用程序 - Tomcat - Maven - 部署和调试

标签 eclipse maven debugging tomcat jakarta-ee

是否有一种万无一失的简单方法可以在 Eclipse Mars 的本地 apache tomacat 服务器中运行和调试简单(教程级别)Maven Web 应用程序?

我正在开发一个 Web 应用程序,有时可以运行它,有时不能运行它,有时可以调试它,有时不能。这有点令人沮丧。

我目前的偏好是从目标为 tomcat:run 的 Maven 配置运行项目。它始终构建和运行,但不会调试,即如果我在 servlet 代码中的 Java 代码中放置断点,则无法到达。 (有时我第一次运行项目时就达到了,但后来找不到某个文件的源代码,并在后续运行中停止中断...)

我也尝试过“在服务器上调试”配置,但是,在那种情况下,我必须在运行项目之前运行 Maven 安装,否则,将找不到某些类。那现在也停止了工作。它只是无法从 src 中找到一些类,尽管 Web 部署程序集配置将源部署到 WEB-INF/classes 中。

最佳答案

(你可能被否决了,因为有几个问题集中在一个问题上。我会尽力回答所有问题,因为我对你的痛苦太熟悉了)

Eclipse 的 Maven 集成在调试 Web 应用程序时是出了名的不稳定,即使使用 MARS。您确实可以将 tomcat6:run 或 tomcat7:run 用于网络应用程序。以下是一些让我保持清醒的“最佳做法”:

  • 始终将“清洁”作为目标的一部分。
  • 确保您遵循标准的 Maven WAR 项目布局。您可以打破这一点,但必须小心指定 META-INF 等的所有覆盖路径。
  • 当您停止/终止 Eclipse 中的进程时,您通常会发现该进程实际上继续运行,但已作为父进程从 eclipse.exe 中分离出来。您需要手动终止 java.exe 进程,否则您会发现“端口已在使用”错误。 ProcessExplorer 对于密切关注这一点非常有用。
  • 当您遇到断点并提示“未找到源”时,您可以尝试一些方法。
    • 在窗口首选项下添加您的 maven 安装 - maven/installations。将其设置为默认值。
    • 在您的运行配置中,确保您使用的是系统安装而不是嵌入式安装。
    • 遇到断点时,关闭编辑器,然后通过单击调试树中的断点重新打开它。

关于Eclipse Mars - Web 应用程序 - Tomcat - Maven - 部署和调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33972018/

相关文章:

java - Gradle项目与Eclipse项目?

node.js - 齐柏林飞艇 : web Application failure while building zeppelin

android - LeakCanary 与 Cordova 的依赖关系 - 找不到方法 debugCompile()

javascript - DOM属性改变调试

java - 在 eclipse 中使用 Gwt 2.7

linux - 无法在 Linux Unity 上使用 Eclipse

r - "could not find function"仅在 R 调试器中时

android - Android 上的 HP TouchPad USB 驱动

java - 在Eclipse中设置安全策略文件

android - 如何将android库发布到Jfrog bintray?