本地调试应用程序在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