调试maven插件在maven web项目中的执行

use*_*550 33 debugging maven-2

有没有办法在maven插件运行时实际调试它.我的意思是,例如我们有maven-clean-plugin.所以当这个插件执行它的动作时,我们可以以某种方式调试并检查maven-clean-plugin的源代码吗?

显然我们必须在eclipse中关联插件的Java源代码,但是我们如何设置它来进行调试呢?

谢谢.

编辑:改变主题我很抱歉,也许我应该更精确.实际上我有我的网络应用程序,它是一个maven项目,它使用第三方maven插件.现在,当我进行mvn clean安装时,我需要调试我的第三方maven插件.现在在我的maven依赖项中,我没有得到对该插件jar的依赖,这是很正常的.有任何想法吗?

Pas*_*ent 43

如果您将Eclipse与m2eclipse插件一起使用,只需使用Debug As ...而不是Run as ...启动您的构建.

如果您不使用m2eclipse,请运行mvnDebug而不是mvn(对于Maven 2.0.8+)并在端口8000上附加远程调试器.对于Maven 2.0.8 <,将远程调试选项添加到启动脚本.

当然,您需要在工作区中导入插件的源代码.

也可以看看


Jea*_*nal 11

如果你想在eclipse中调试Maven执行,我就是这样做的,主要是使用命令行工具(没有使用Eclipse插件)(可能在某些时候关闭,我6个月没有这样做):

  • 从命令行运行,mvndebug代替mvn命令.Maven将开始启动并等待外部调试器在恢复之前出现在TCP端口上.记下端口号.
  • 在Eclipse中配置自定义远程调试配置.(请参阅http://www.ibm.com/developerworks/library/os-ecbug/,远程调试) - 将端口号设置为mvndebug使用的端口号.还要在Debug配置中放置将用于调试的源文件.
  • 启动远程调试配置.Maven应该恢复,你将在Eclipse中捕获bug.


cze*_*rny 7

只需更换mvnmvnDebug您的命令:

mvnDebug clean install
Run Code Online (Sandbox Code Playgroud)

因此,JVM在端口8000处侦听调试器.为了更精细的控制,您可以MAVEN_OPTS使用标准JVM调试参数设置环境变量:

export MAVEN_OPTS="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
mvn clean install
Run Code Online (Sandbox Code Playgroud)


mdm*_*dma 6

这可能稍微偏了,因为我要谈谈IntelliJ IDEA.使用IDEA,您可以直接加载maven项目,然后只需右键单击其中一个构建生命周期阶段(清理,打包,安装等...)并选择调试.然后,IDE使用正确的类路径运行该阶段,并将您置于调试器中.

我已经使用调试器来调试我自己的几个插件.我从来没有尝试调试第三方插件,虽然我想如果jar中仍然有调试符号并且你有相应的源代码,这将是相对轻松的.

IDEA 的社区版免费提供.