Debugging Maven

When developing with maven by default there is no way to debug maven – or a self written maven plugin. This is really nasty when trying to write a plugin and then test the plugin. But there is a simple solution/workaround to do this.

Maven or a Maven Plugin

In order to debug maven or a plugin simply set the environment variable MAVEN_OPTS to the following value:

-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000

Then the process opens port 8000 and you are able to all the cool stuff when connecting with a debugger! Setting the option suspend=y helps debugging a lot because it requires the jvm to wait until a debugger is connected. But be careful! Without removing the option maven always will wait for a debugger to be connected.

This helps debugging maven or a maven plugin. But this is not a good idea when debugging a test that runs with the maven surefire plugin.

Tests or Integration Tests

For debugging a test you can add the following option when running maven. Choose the first option to run normal unit tests in debug mode. The second option helps debugging integration tests.

-Dmaven.surefire.debug
-Dmaven.failsafe.debug

 Sources

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.