【问题标题】:Run maven web project with JSP debugging on tomcat with IntelliJ Idea使用 IntelliJ Idea 在 tomcat 上运行带有 JSP 调试的 maven web 项目
【发布时间】:2013-09-26 00:41:32
【问题描述】:

我正在从 Eclipse 过渡到 IntelliJ Idea,并且在让我的 Maven Web 项目按照我的意愿运行时遇到了一些麻烦。在 Eclipse 中,我使用 mvn tomcat:run 运行它,它在 JSP 调试中运行良好。在 IntelliJ 中,我创建了一个运行配置来使用这个命令,它可以工作,但是 JSP 调试不起作用。

我试图找到有关让 JSP 调试在 IntelliJ 上工作的信息,我发现的唯一信息涉及在 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 或使用 Maven 构建的项目在 Intellij 管理的 Tomcat 上进行 JSP 调试?

【问题讨论】:

    标签: java jsp maven tomcat intellij-idea


    【解决方案1】:

    在 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。然后运行上面的运行配置(点击调试按钮)。

    【讨论】:

    • 谢谢,成功了。不过,不必一直从命令提示符运行它会很好。我尝试通过创建一个运行 tomcat7:run 的 Maven 运行配置来执行此操作,并将您发布的调试参数放在 VM 选项中(不确定将它们放在哪里)。一旦启动并运行,我尝试运行远程 tomcat 服务器配置,但它说它无法连接到该端口。有什么想法吗?
    • 最终你需要将“-Xdebug”和相关参数传递给运行tomcat的JVM。理想情况下,tomcat-maven-plugin 将记录如何执行此操作,因为它负责启动该 JVM,但我没有在文档中看到它。这个答案有一个建议,但至少有两个评论员说它对他们不起作用:stackoverflow.com/questions/11928689/… 当然,您总是可以放弃从 maven 启动 tomcat 的想法,而只是从 IntelliJ(本地 tomcat)启动它,至少在调试。
    猜你喜欢
    • 1970-01-01
    • 2017-07-21
    • 2019-03-14
    • 2017-01-18
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多