当运行带有许多插件(例如jOOQ或Flyway插件 )的Maven构建时,您可能想更深入地了解这些插件或这些插件的扩展内部发生了什么。 当您从命令行运行Maven时,这可能并不明显,例如通过:
C:\Users\jOOQ\workspace>mvn clean install
幸运的是,调试Maven非常容易。 为此,只需在Windows上创建以下批处理文件:
@ECHO OFFIF "%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_debugC:\Users\jOOQ\workspace>mvn clean install
Listening for transport dt_socket at address: 5005
现在,您的Maven构建将等待调试器客户端通过端口5005(更改为任何其他合适的端口)连接到JVM。 现在,我们将使用Eclipse进行操作。 只需添加一个新的连接在套接字上的远程Java应用程序,然后单击“调试”即可:
而已。 现在,我们可以像其他任何类型的服务器进程一样,通过Maven进程设置断点并进行调试。 当然,IntelliJ或NetBeans的工作方式完全相同。
调试完Maven流程后,只需使用参数off
再次调用该批处理:
C:\Users\jOOQ\workspace>mvn_debug offC:\Users\jOOQ\workspace>mvn clean install
而且您的Maven构建将不再被调试。
调试愉快!
翻译自: https://www.javacodegeeks.com/2015/06/how-to-debug-your-maven-build-with-eclipse.html