使用IntelliJ Idea在tomcat上调试带有JSP的maven web项目

3
我正在从Eclipse转向IntelliJ Idea,但在运行我的Maven Web项目时遇到了一些问题。在Eclipse中,我使用“mvn tomcat:run”运行它,这在JSP调试方面效果很好。在IntelliJ中,我创建了一个运行配置,使用此命令,它可以工作,但JSP调试不起作用。
我试图查找有关在IntelliJ中启用JSP调试的信息,但唯一找到的信息涉及在IntelliJ中设置Tomcat服务器,而不是使用maven的tomcat和mvn tomcat:run。问题是,我无法弄清楚如何在IntelliJ中实现此操作,而不是使用Maven构建项目来进行构建。我可以添加类似于“mvn compile”的Maven目标,但当我将其设置为部署爆炸战争时,并将“build myproject:war exploded artifact”添加到构建队列中,这会调用IntelliJ的构建器。
IntelliJ的构建器需要很长时间才能构建我的项目。我甚至从未让它完成过。公平地说,该项目非常庞大,但Maven构建速度相当快。此外,我公司的所有人都使用Maven构建它,因此我也需要使用Maven。
有人可以帮助我使用mvn tomcat:run启用JSP调试,或者在由Maven构建的Intellij管理的Tomcat上启用JSP调试吗?
1个回答

4
在IntelliJ中,您可以轻松地调试“远程”Tomcat实例(在与IntelliJ不同的JVM中运行):
Run -> Edit Configuration -> "+" -> Tomcat Server -> Remote 

这将创建一个新的运行配置。在“启动/连接”选项卡上查看有关要添加到Tomcat JVM的参数信息。我的参数是:

-Xdebug -Xrunjdwp:transport=dt_socket,address=57813,suspend=n,server=y

最后,通过启动必要的Maven命令来启动Tomcat。然后运行上述运行配置(点击调试按钮)。


谢谢,这可行。不过每次都从命令提示符中运行有点麻烦。我尝试创建一个Maven运行配置,使用tomcat7:run运行并将您发布的调试参数放入VM选项中(不确定还能放在哪里)。一旦它运行起来了,我尝试运行远程tomcat服务器配置,但它说无法连接到该端口。有任何想法吗? - Sarevok
最终,您需要将“-Xdebug”和相关参数传递给Tomcat运行的JVM。理想情况下,tomcat-maven-plugin应该记录如何执行此操作,因为它负责启动该JVM,但我没有在文档中看到它被提及。这个答案有一个建议,但至少有两位评论者说它对他们没用:https://dev59.com/C2ct5IYBdhLWcg3wpfBc 当然,您可以放弃从maven启动tomcat的想法,而是从IntelliJ(本地tomcat)启动它,至少在调试时。 - Keith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接