是否有一种万无一失的简单方法可以在 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/