13

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

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

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

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

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

4

3 回答 3

30
$ export MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
$ mvn tomcat7:run-war

^^ 就是这样,不酷(因为它不在 POM 中)但它可以工作

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

于 2012-09-14T09:59:03.450 回答
6

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

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

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

    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 的精确运行目标与调试启用无关。根据您的用例(动态 Web 项目、战争等)进行选择。插件配置也是如此。但是,请确保在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>
于 2013-10-24T13:06:07.973 回答
-1

或者...您可以简单地将以下标签添加到您的插件配置中

 <jpda>true</jpda>

然后当你执行:mvn tomcat7:run,它会在8000端口启动jpda。

有趣的是,即使我已经对此进行了测试并且它有效,但我在开源代码库中找不到任何代码来解释它为什么有效,也没有找到任何改变默认端口 8000 的方法。

当谈到这个插件的文档时,Apache 似乎已经放弃了。

于 2014-03-07T17:55:57.287 回答