我如何运行Gradle+;在单个构建步骤中在IntelliJ中使用远程调试器的Tomcat?

我如何运行Gradle+;在单个构建步骤中在IntelliJ中使用远程调试器的Tomcat?,tomcat,intellij-idea,gradle,remote-debugging,Tomcat,Intellij Idea,Gradle,Remote Debugging,我有一个Gradle项目,使用。由于该项目是在Tomcat上运行的,因此我必须使用Java的远程调试器连接到服务器。因此,我现在要做的是: 使用远程调试器运行Gradle生成 运行连接到Tomcat的远程调试器 问题是:是否可以在IntelliJ内部使用Tomcat运行Gradle构建,而不需要两个单独的构建步骤 我已经尝试将Gradle构建添加到远程调试器的“启动前”步骤: 但这不起作用,因为tomcatRun从未完成,因此远程调试器从未执行。在cmd中运行此命令 set GRADLE_OP

我有一个Gradle项目,使用。由于该项目是在Tomcat上运行的,因此我必须使用Java的远程调试器连接到服务器。因此,我现在要做的是:

  • 使用远程调试器运行Gradle生成
  • 运行连接到Tomcat的远程调试器
  • 问题是:是否可以在IntelliJ内部使用Tomcat运行Gradle构建,而不需要两个单独的构建步骤

    我已经尝试将Gradle构建添加到远程调试器的“启动前”步骤:

    但这不起作用,因为tomcatRun从未完成,因此远程调试器从未执行。

    在cmd中运行此命令

    set GRADLE_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n
    
    在cmd中运行此命令

    gradle tomcatRun
    

    然后启动远程应用程序,如问题图所述

    当您在IntelliJ中启动调试器时,是否会看到一条消息,告诉您它已连接到您的应用程序?(我以前在IntelliJ中处理过类似的问题)@TimBiegeleisen:远程调试器工作,我得到消息(“连接到目标VM…”),但前提是我在单独的选项卡中运行它。在“启动前”配置中,它不起作用,因为tomcatRun从未完成。所以这里的问题是:是否可以在同一个构建步骤中运行远程调试器和tomcat?是否可以从对话框中以非调试模式运行tomcat?您确定Tomcat正在端口5005上侦听调试器(据我所知,这是一个不寻常的端口号)。如果Tomcat在另一个生成目标中运行,我可以在非调试模式下运行它。因此,无论它处于何种模式,它都会工作。端口号分配正确。如果我将调试器分为两个单独的步骤(第一个选项卡中是tomcatRun,第二个选项卡中是remote debugger),那么运行调试器一点问题都没有。我唯一想到的另一件事是检查Tomcat的日志是否抛出了某种错误。如果日志中没有任何痕迹,那么您可能会怀疑是否真的连接到了它。