有没有办法在maven插件运行时实际调试它。我的意思是,例如我们有maven-clean-plugin。所以,当这个插件执行它的动作时,我们可以以某种方式调试并检查maven-clean-plugin的源代码吗?
显然我们必须在eclipse中关联插件的Java源代码,但是如何设置它来进行调试呢?
感谢。
编辑:更改主题 对不起,伙计们也许我应该更加精确。实际上我有我的网络应用程序,它是一个maven项目,它使用第三方maven插件。现在,当我执行 mvn clean install 时,我需要调试我的第三方maven插件。现在在我的maven依赖项中,我没有得到对该插件jar的依赖,这很正常。有什么想法吗?
答案 0 :(得分:40)
如果您将Eclipse与m2eclipse插件一起使用,只需使用 Debug As ... 而不是 Run as ... 启动您的构建。
如果您不使用m2eclipse,请运行mvnDebug
而不是mvn
(对于Maven 2.0.8+)并在端口8000上附加远程调试器。对于Maven 2.0.8<,添加远程启动脚本的debuggin选项。
当然,您需要在工作区中导入插件的源代码。
答案 1 :(得分:11)
如果你想在eclipse中调试Maven执行,我就是这样做的,主要是命令行工具(没有使用Eclipse插件)(可能在某些时候关闭,我6个月没有这样做) :
mvndebug
代替mvn
命令。 Maven将开始启动并等待外部调试器在恢复之前出现在TCP端口上。请注意端口号。答案 2 :(得分:7)
只需在命令中将mvn
替换为mvnDebug
:
mvnDebug clean install
结果,JVM在端口8000处侦听调试器。为了更好地控制,您可以使用标准JVM调试参数设置MAVEN_OPTS
环境变量:
export MAVEN_OPTS="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
mvn clean install
答案 3 :(得分:6)
这可能稍微偏了,因为我要谈谈IntelliJ IDEA。使用IDEA,您可以直接加载maven项目,然后只需右键单击其中一个构建生命周期阶段(清理,打包,安装等...)并选择调试。然后,IDE使用正确的类路径运行该阶段,并将您放入调试器中。
我已经使用调试器来调试我自己的几个插件。我从来没有尝试调试第三方插件,虽然我想如果jar中仍然有调试符号并且你有相应的源代码,这将是相对轻松的。
IDEA的community edition免费提供。
答案 4 :(得分:2)
在NetBeans 7.4中,右键单击项目>属性>动作。选择Build project
操作(或任何其他操作),然后点击“设置属性”旁边的Add
和Debug Maven Build
。