如何为mvn tomcat插件(jpda)设置agentlib属性

chi*_*.de 13 remote-debugging jpda maven-tomcat-plugin

eclipse调试远程web应用程序相关 => 如何在我的eclipse中调试远程应用程序

如何在mvn tomcat插件中设置/存档? http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/

唯一可能有用的是设置systemProperty,但这对我不起作用; /

目标:让tomcat通过maven在控制台上运行,但为不同的IDE启用远程调试

(是的,我们可以在Eclipse WTP中运行tomcat!这不是问题;)

chi*_*.de 27

$ export MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
$ mvn tomcat7:run-war
Run Code Online (Sandbox Code Playgroud)

^^就是这样,不酷(因为它不在POM中)但是它有效

资料来源:http://aaronz-sakai.blogspot.de/2009/02/debugging-jetty-when-running-mvn.html


sht*_*rec 6

这是一个有点旧的线程,但为了完整起见,我虽然可能会在这里添加一点.

该插件不会出于任何奇怪的原因提供调试选项配置.因此,您唯一的选择是手动为运行该进程的JVM指定调试配置.在您的环境中,有三种方法可以实现此目的:

  1. 使用众所周知的maven环境变量(如childno.de所述)
  2. 直接指定maven的选项(不需要env.变量):

    mvn -Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp:transport = dt_socket,address = 8000,server = y,suspend = y tomcat7:run-war

  3. 使用eclipse运行配置基本上与2)相同,但你在eclipse中定义了这个(如果你根本不想离开IDE那将会很好).为此,您需要指定Maven Build Run配置.将目标设置为tomcat7:run(或类似),然后导航到JRE选项卡.您可以在VM参数区域中指定调试配置:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
如果您选择3),则tomcat7的精确运行目标与调试启用无关.根据您的用例选择(动态网络项目,战争等).插件配置也是如此.但是,请确保在pluginManagement项目pom 的部分中指定您正在使用tomcat maven插件:

<pluginManagement>
   <plugins>
        <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
    </plugin>
    </plugins>
</pluginManagement>
Run Code Online (Sandbox Code Playgroud)