8

我正在尝试在我的货物配置中启用调试。我正在使用具有以下配置的 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?

4

2 回答 2

10

我像这样解决了这个问题。

<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

然后,我通过 to 为遥控器创建了一个 IntelliJ 运行配置。Run > Edit Configurations > + > Remote我将遥控器配置为访问 localhost 和我之前选择的端口 <9009>。

在此处输入图像描述

完成此操作后,我可以启动货物运行,然后将调试器作为单独的进程启动以启用窃听。

如果你愿意,你可以像这样将挂起参数更改为 no。

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

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

于 2016-04-06T11:14:26.027 回答
1

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

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

并开始使用应用程序,

./gradlew cargoRunLocal

于 2018-07-05T18:20:36.197 回答