本地调试应用程序在 tomcat 上启动,带有 IntelliJ 中的货物
Local debugging application launched on tomcat with cargo in IntelliJ
我正在尝试在我的货物配置中启用调试。我正在使用具有以下配置的 cargo-maven2-plugin 版本 1.4.19。
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.19</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
</container>
<configuration>
<type>standalone</type>
<properties>
<cargo.servlet.port>8080</cargo.servlet.port>
<cargo.jvmargs>
-Xmx2048m
-Xms512m
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=63342
-Xnoagent
-Djava.compiler=NONE
</cargo.jvmargs>
</properties>
</configuration>
<deployer>
</deployer>
<deployables>
<deployable type="war" file="target/spa.war"></deployable>
</deployables>
</configuration>
</plugin>
应用程序使用此配置启动,但 IntelliJ 从未连接到 JVM 以启用调试。如何让 IntelliJ 连接到 JVM?
我是这样解决的。
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.19</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
</container>
<configuration>
<type>standalone</type>
<properties>
<cargo.servlet.port>8080</cargo.servlet.port>
<cargo.jvmargs>
-Xmx2048m
-Xms512m
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009
-Xnoagent
-Djava.compiler=NONE
</cargo.jvmargs>
</properties>
</configuration>
<deployer>
</deployer>
<deployables>
<deployable type="war" file="target/spa.war"></deployable>
</deployables>
</configuration>
</plugin>
我像这样更改地址使用了另一个端口。
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009
然后我通过转到为远程创建了一个 IntelliJ 运行 配置。 Run > Edit Configurations > + > Remote
我将遥控器配置为转到本地主机和我之前选择的端口 <9009>。
完成此操作后,我可以启动 cargo 运行,然后将调试器作为单独的进程启动以启用窃听。
如果您愿意,可以像这样将暂停参数更改为 no。
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009
然后 cargo 构建将在没有 运行 调试器的情况下开始。
对于 gradle 4.3.0
,在 json 路径下 cargo>local
添加以下参数,
jvmArgs = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
并开始使用应用程序,
./gradlew cargoRunLocal
我正在尝试在我的货物配置中启用调试。我正在使用具有以下配置的 cargo-maven2-plugin 版本 1.4.19。
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.19</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
</container>
<configuration>
<type>standalone</type>
<properties>
<cargo.servlet.port>8080</cargo.servlet.port>
<cargo.jvmargs>
-Xmx2048m
-Xms512m
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=63342
-Xnoagent
-Djava.compiler=NONE
</cargo.jvmargs>
</properties>
</configuration>
<deployer>
</deployer>
<deployables>
<deployable type="war" file="target/spa.war"></deployable>
</deployables>
</configuration>
</plugin>
应用程序使用此配置启动,但 IntelliJ 从未连接到 JVM 以启用调试。如何让 IntelliJ 连接到 JVM?
我是这样解决的。
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.19</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
</container>
<configuration>
<type>standalone</type>
<properties>
<cargo.servlet.port>8080</cargo.servlet.port>
<cargo.jvmargs>
-Xmx2048m
-Xms512m
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009
-Xnoagent
-Djava.compiler=NONE
</cargo.jvmargs>
</properties>
</configuration>
<deployer>
</deployer>
<deployables>
<deployable type="war" file="target/spa.war"></deployable>
</deployables>
</configuration>
</plugin>
我像这样更改地址使用了另一个端口。
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009
然后我通过转到为远程创建了一个 IntelliJ 运行 配置。 Run > Edit Configurations > + > Remote
我将遥控器配置为转到本地主机和我之前选择的端口 <9009>。
完成此操作后,我可以启动 cargo 运行,然后将调试器作为单独的进程启动以启用窃听。
如果您愿意,可以像这样将暂停参数更改为 no。
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009
然后 cargo 构建将在没有 运行 调试器的情况下开始。
对于 gradle 4.3.0
,在 json 路径下 cargo>local
添加以下参数,
jvmArgs = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
并开始使用应用程序,
./gradlew cargoRunLocal