发布于:2021-01-08 18:05:32
0
99
0
您是否确切知道运行Maven构建时您的插件在做什么?Lukas Eder完成了轻松调试Maven所需的步骤。
当运行带有许多插件(例如jOOQ或Flyway插件)的Maven构建时,您可能想更深入地了解这些插件或这些插件的扩展内部发生了什么。当您从命令行运行Maven时,这可能并不明显,例如:
C:UsersjOOQworkspace>mvn clean install
幸运的是,调试Maven非常容易。为此,只需在Windows上创建以下批处理文件:
@ECHO OFF IF "%1" == "off" ( SET MAVEN_OPTS= ) ELSE ( SET MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compile=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 )
当然,您也可以在MacOS X或Linux机器上通过使用exportintead来执行相同的操作SET。
现在,运行上面的批处理文件,然后再次进行构建:
C:UsersjOOQworkspace>mvn_debug C:UsersjOOQworkspace>mvn clean install Listening for transport dt_socket at address: 5005
现在,您的Maven构建将等待调试器客户端通过端口5005(更改为任何其他合适的端口)连接到JVM。现在,我们将使用Eclipse进行操作。只需添加一个新的连接在套接字上的Remote Java Application,然后单击“ Debug”即可:
而已。现在,我们可以设置断点并通过Maven进程进行调试,就像通过任何其他类似类型的服务器进程一样。当然,IntelliJ或NetBeans的工作方式完全相同。
调试完Maven流程后,只需使用参数再次调用该批处理off:
C:UsersjOOQworkspace>mvn_debug off C:UsersjOOQworkspace>mvn clean install
而且您的Maven构建将不再被调试。
调试愉快!
作者介绍