本地调试应用程序在tomcat上启动,货物在IntelliJ中

我正在尝试在我的货物配置中启用调试。 我正在使用具有以下配置的cargo-maven2-plugin版本1.4.19。

  org.codehaus.cargo cargo-maven2-plugin 1.4.19   tomcat8x   standalone  8080  -Xmx2048m -Xms512m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=63342 -Xnoagent -Djava.compiler=NONE           

应用程序使用此配置启动,但IntelliJ从不连接到JVM以启用debuging。 如何使IntelliJ连接到JVM?

我这样修好了。

   org.codehaus.cargo cargo-maven2-plugin 1.4.19   tomcat8x   standalone  8080  -Xmx2048m -Xms512m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009 -Xnoagent -Djava.compiler=NONE           

我通过更改地址来使用另一个端口。

-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009

然后,我通过转到为远程创建了一个IntelliJ运行配置。 Run > Edit Configurations > + > Remote我将远程配置为localhost和我之前选择的端口<9009>。

在此处输入图像描述

执行此操作后,我可以启动货物运行,然后启动调试器作为单独的过程来启用窃听。

如果您愿意,可以将suspend参数更改为no。

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

然后货物构建将在不运行调试器的情况下启动。

对于gradle 4.3.0 ,在json路径cargo>local添加以下参数,

jvmArgs = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

并启动应用程序使用,

./gradlew cargoRunLocal