在开发Maven Web应用程序时,我通常会使用jetty-maven-plugin
快速启动我的应用程序进行本地测试和调试。使用m2eclipse
启动的缺点是没有正确包含所有调试源,即使它们是由Maven下载的(参见Source lookup does not seem to work)。
在Eclipse中调试Maven Web应用程序的首选方法是什么?我特别感谢使用gwt-maven-plugin
。
答案 0 :(得分:7)
使用m2eclipse开发Web应用程序的首选方法是......不使用它。相反,我使用Debugging with the Maven Jetty Plugin in Eclipse中描述的方法,我在下面引用:
第1步
转到运行/外部工具/外部 工具...“运行”菜单上的菜单项 酒吧。选择“程序”,然后单击 “新”按钮。在“主要”选项卡上,填写 在“位置:”作为完整的路径 你的“
mvn
”可执行文件。为了 “工作目录:”选择 与您的webapp匹配的工作空间。 对于“参数:”,添加jetty:run
。移至“环境”标签页 单击“新建”按钮添加新的 变量名为
MAVEN_OPTS
的变量 值:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y
如果您提供
suspend=n
而不是。{suspend=y
你可以马上开始 没有运行调试器和 随时启动调试器 真的很想调试。第2步
然后,拉出“运行/调试/调试” ...“菜单项并选择”远程Java 应用程序“并单击”新建“ 按钮。通过填写对话框 选择你的webapp项目 “项目:”字段,并确保您 使用与您相同的端口号 在
address=
属性中指定 上方。现在你需要做的就是 运行/外部工具并选择名称 您创建的maven工具设置 步骤1启动插件然后 运行/调试并选择名称 您在步骤2中设置的调试设置。
来自提供的说明 关于Maven邮件的Rolf Strijdhorst 列表子>
停止码头
为了停止码头服务器 “允许终止远程VM” 应该在调试对话框中检查 第2步。当你有jetty服务器 运行,调试器连接到你 可以切换到调试透视图。 在调试视图中,右键单击 Java HotSpot(TM)客户端 VM [localhost:4000]并选择了 终止。这将停止调试器 和码头服务器。
答案 1 :(得分:3)
尽量避免编写需要某种容器进行调试的代码。始终编写可以独立运行的代码并将其包装在一个非常薄的层中进行部署(薄层 - >几行代码 - >几个错误)。
如果您真的必须,请尝试MockRunner模拟应用服务器。
除此之外,您可以在项目属性中手动添加源。