如何使用intellij想法调试maven目标?

时间:2013-01-30 11:08:23

标签: intellij-idea

您可以使用Intellij IDEA调试maven目标吗?我知道我可以右键单击并运行 Debug 。但是,maven插件没有出现在我的外部库列表中,因此我无法进入代码并设置断点。因此, Debug 不停地运行目标,就像运行那样。

我使用的是OS X 10.8和IDEA 12.0.2。

编辑:目标

我为https://github.com/searls/jasmine-maven-plugin编写了自定义specRunner - 但是,$ specs $保持空白。所以我试着看看实际加载了哪些文件。

9 个答案:

答案 0 :(得分:163)

想出来:

    从命令行
  1. ,使用mvnDebug而不是mvn运行maven目标。例如。 mvnDebug clean
  2. 打开要在intelliJ中调试的maven插件的源代码并设置breakPoint
  3. 在IDEA中,添加Remote配置。
    1. 在“设置”下,设置“传输:套接字”,“调试器模式:附加”,“主机:localhost”,“端口:8000”(默认端口为mvnDebug)。
  4. 在调试模式下运行配置。它应该连接到等待的mvnDebug jvm。

答案 1 :(得分:30)

很简单。我正在使用Intellj Idea 15.0.4

  1. 在maven插件中设置断点
  2. 在标签“Maven Projects”中,转到使用maven插件的项目。
  3. 在“插件”中找到您的插件,然后右键单击并调试
  4. 以下是截图:

    screenshot

答案 2 :(得分:12)

老问题,但我有同样的需求,我需要一段时间才能让它发挥作用。希望可以帮助别人。

对于测试调试使用:

mvn <goal> -Dmaven.surefire.debug 

mvn <goal> -Dmaven.failsafe.debug

执行停止并在地址5005(默认)侦听套接字时,运行配置的远程调试器。

如何配置:

运行 - &gt;修改配置 - &gt;远程 运输:插座 调试器模式:附加 端口:5005(默认)

- &GT;保存。

答案 3 :(得分:7)

仅在IntelliJ中调试maven目标的最简单方法是创建常规maven目标,并在runner选项卡中传递这些VM选项:

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

其中8000是远程调试的端口号。

Maven goal configuration

然后使用端口8000创建新的远程配置。运行maven目标后运行此配置。

Remote debugging configuration

答案 4 :(得分:6)

我认为最简单的解决方案是暂时将maven插件添加为依赖项。完成此操作后,IntelliJ将像处理任何其他依赖项一样处理此问题,您可以按常规方式设置断点。

答案 5 :(得分:2)

由于您正在使用Intellij,因此已经有一个内置的调试器,您不必使用mvnDebug这是一个命令行工具。查看本教程:How to Debug Maven Applications in Intellij IDEA

本教程使用Maven Exec插件,让您无需使用命令行或MvnDebug即可调试应用程序。分享它可能在这里很有价值。

答案 6 :(得分:1)

您可以参考above answer或者只是将此插件添加到pom.xml

           <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
            <jvmArguments>
            -Xdebug - 
            Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
            </jvmArguments>
            </configuration>
        </plugin>

使用mvn代替mvnDebug运行maven目标。例如。 mvn spring-boot:run

在IDEA中,添加远程配置。 在“设置”下,设置“传输:套接字”,“调试器模式:附加”,“主机:localhost”,“端口:8000”(默认端口为mvnDebug)。

只要您想调试代码,就在IDEA中作为Debug运行。

答案 7 :(得分:1)

@Peter Szanto的答案对我有用,但我不喜欢弄乱我的源代码。

而且我无法使这些MvnDebug方法正常工作。

所以我尝试另一种方法,将插件源添加为IDEA模块

这是详细步骤:

  1. 将插件源克隆为一个独立的项目。

  2. 在您的项目中,转到File -> New -> Module from Exist Sources并添加在步骤1中克隆的插件项目。

  3. 现在您可以打开插件源代码并设置一些断点。

  4. 以调试模式运行您的maven目标,它应该在断点处停止。

答案 8 :(得分:0)

无需设置 Java Remote Debugger 或类似的设置。正如 official docs 中所述,现在实际上只是 right click -> debug 上的 Maven 目标。