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

rwe*_*eng 91 intellij-idea

你能用Intellij IDEA调试maven的目标吗?我知道我可以右键单击并运行Debug.但是,maven插件没有出现在我的外部库列表中,因此我无法进入代码并设置断点.因此,Debug会在不停止的情况下运行目标,就像Run一样.

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

编辑:目标

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

rwe*_*eng 173

弄清楚了:

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

  • 如果我想使用 `mvn test -Dtest=com.example.MyTest` 运行测试怎么办(我的测试用例仅在使用 maven 运行时才会失败) - 在这种情况下 IDEA 断点被忽略,似乎...... :( (5认同)
  • 你如何在Intellij中打开maven插件的来源? (2认同)
  • 找到它:在/sf/ask/460130261/,这基本上是问题 (2认同)

gor*_*ums 38

很容易.我正在使用Intellj Idea 15.0.4

  1. 在maven插件中设置断点
  2. 在标签"Maven Projects"中,转到使用maven插件的项目女巫.
  3. 在"插件"中找到您的插件并在目标上单击右键并调试

这是一个截图:

截图

  • “在您的Maven插件中设置断点”我不确定这到底意味着什么?这与在Java类本身中设置断点不同吗? (2认同)

vil*_*lkg 15

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

对于测试调试使用:

mvn <goal> -Dmaven.surefire.debug 
Run Code Online (Sandbox Code Playgroud)

要么

mvn <goal> -Dmaven.failsafe.debug
Run Code Online (Sandbox Code Playgroud)

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

如何配置:

运行 - >编辑配置 - >远程传输:套接字调试器模式:连接端口:5005(默认)

- >保存.


Mic*_*mal 9

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

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
Run Code Online (Sandbox Code Playgroud)

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

Maven目标配置

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

远程调试配置


Pet*_*nto 7

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

  • 点这个,而不是 mvn 使用:mvnDebug ...,然后在端口 8000 上的 intellij 中创建一个远程调试运行程序 (2认同)

and*_*ras 5

无需设置Java Remote Debugger或类似的事情。正如官方文档中所解释的,现在实际上只是目标上的right click-> 。debugMaven