如何使用Eclipse调试Maven构建

当运行带有许多插件(例如jOOQ或Flyway插件 )的Maven构建时,您可能想更深入地了解这些插件或这些插件的扩展内部发生了什么。 当您从命令行运行Maven时,这可能并不明显,例如通过:

C:\Users\jOOQ\workspace>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机器上通过使用SET export界面执行相同的操作。

现在,运行上面的批处理文件,然后再次进行构建:

C:\Users\jOOQ\workspace>mvn_debug

C:\Users\jOOQ\workspace>mvn clean install
Listening for transport dt_socket at address: 5005

现在,您的Maven构建将等待调试器客户端通过端口5005(更改为任何其他合适的端口)连接到JVM。 现在,我们将使用Eclipse进行操作。 只需添加一个新的连接在套接字上的远程Java应用程序,然后单击“调试”即可:

如何使用Eclipse调试Maven构建

而已。 现在,我们可以像其他任何类型的服务器进程一样,通过Maven进程设置断点并进行调试。 当然,IntelliJ或NetBeans的工作方式完全相同。

调试完Maven流程后,只需使用参数off再次调用该批处理:

C:\Users\jOOQ\workspace>mvn_debug off

C:\Users\jOOQ\workspace>mvn clean install

而且您的Maven构建将不再被调试。

调试愉快!

翻译自: https://www.javacodegeeks.com/2015/06/how-to-debug-your-maven-build-with-eclipse.html