如何使用intellij idea调试maven目标?

u91tlkcl  于 2023-03-22  发布在  IntelliJ IDEA
关注(0)|答案(9)|浏览(287)

你能用Intellij IDEA调试一个maven目标吗?我知道我可以右键单击并运行 Debug。但是,maven插件没有出现在我的 External Libraries 列表中,所以我不能进入代码并设置断点。因此,Debug 运行目标而不停止,就像 Run 一样。
我使用的是OS X 10.8和IDEA 12.0.2。

编辑:目标

我已经为https://github.com/searls/jasmine-maven-plugin编写了自定义的specRunner--但是,$specs$仍然为空,所以我尝试查看实际加载的文件。

c2e8gylq

c2e8gylq1#

我想明白了:

  • 在命令行中,使用mvnDebug而不是mvn运行maven goal。例如,mvnDebug clean
  • 在intelliJ中打开要调试的maven插件的源代码并设置一个breakPoint
  • 在IDEA中,添加Remote JVM Debug配置。
  • 在“设置”下设置:
  • 运输:Socket
  • 调试器模式:Attach
  • 主机:localhost
  • 端口:8000(mvnDebug的默认端口)

1.在调试模式下运行配置。它应该连接到等待的mvnDebug jvm。

xjreopfe

xjreopfe2#

非常简单。我使用的是Intellj Idea 15.0.4
1.在您的maven插件中设置断点
1.在标签“Maven Projects”中,转到使用您的Maven插件的项目。
1.在“插件”找到你的插件和目标右键单击和调试
下面是截图:

z4iuyo4d

z4iuyo4d3#

老问题了,但我也有同样的需要,我花了一段时间才让它起作用。希望能帮助到别人。
对于测试调试用途:

mvn <goal> -Dmaven.surefire.debug

mvn <goal> -Dmaven.failsafe.debug

当执行停止并侦听地址为5005(默认值)的套接字时,您将运行配置的远程调试器。
如何配置:
运行-〉编辑配置-〉远程传输:套接字调试器模式:连接端口:5005(默认)

  • 〉保存。
u3r8eeie

u3r8eeie4#

我认为最简单的解决方案是临时添加maven插件作为依赖项。一旦这样做,IntelliJ将像对待任何其他依赖项一样对待它,您可以按照通常的方式设置断点。

arknldoa

arknldoa5#

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

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

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

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

erhoui1w

erhoui1w6#

不需要设置Java Remote Debugger或类似的东西。它现在实际上只是Maven目标上的right click-〉debug,如官方文档中所解释的那样。

zzzyeukh

zzzyeukh7#

您可以引用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 goal。例如mvn spring-boot:run
在IDEA中,添加远程配置。在设置下,设置传输:套接字,调试器模式:连接,主机:本地主机,端口:8000(mvnDebug的默认端口)。
在IDEA中,无论何时要调试代码,都要以Debug身份运行。

bcs8qyzn

bcs8qyzn8#

由于您使用的是Intellij,因此已经有一个内置的调试器,您不需要使用mvnDebug,这是一个命令行工具。查看此教程:How to Debug Maven Applications in Intellij IDEA .
本教程使用了Maven Exec插件,让您无需使用命令行或MvnDebug即可调试应用程序。

mrfwxfqh

mrfwxfqh9#

@Peter Szanto的答案对我来说很有用,但我不喜欢弄乱我的源代码。
我不能让那些MvnDebug的方式工作。
所以我尝试了另一种方法,将插件源代码添加为IDEA模块
以下是详细步骤:
1.将插件源代码克隆为一个独立的项目。
1.在您的项目中,转到File -> New -> Module from Exist Sources并添加您在步骤1中克隆的插件项目。
1.现在你可以打开插件源代码并设置一些断点。
1.以调试模式运行你的maven目标,它应该在断点处停止。

相关问题