Reputation: 7230
Can you debug a maven goal with Intellij IDEA? I know that I can right-click and run Debug. However, the maven plugin does not appear in my External Libraries list, so I can not go into the code and set a breakpoint. Thus, Debug runs through the goals without stopping, like Run does.
I am using OS X 10.8 and IDEA 12.0.2.
EDIT: Goal
I've written custom specRunner for https://github.com/searls/jasmine-maven-plugin - However, $specs$ stays empty. So I try to see which files are actually loaded.
Upvotes: 153
Views: 136607
Reputation: 7230
Figured it out:
mvnDebug
instead of mvn
. E.g. mvnDebug clean
Remote JVM Debug
Configuration.
Socket
Attach
localhost
8000
(default port of mvnDebug)Upvotes: 265
Reputation: 665
Old question, but I was having the same need and it took me a while to get it to work. Hopefully can help someone.
For test debugging use:
mvn <goal> -Dmaven.surefire.debug
or
mvn <goal> -Dmaven.failsafe.debug
When execution stops and listens to socket at address 5005 (default) you run your configured remote debugger.
How to configure it:
Run -> Edit configurations -> Remote Transport: socket Debugger mode: Attach Port: 5005 (default)
-> Save.
Upvotes: 32
Reputation: 3645
No need to setup up Java Remote Debugger
or anything like that. It is literally just a right click
-> debug
on the Maven
goal now, as explained in the official docs.
Upvotes: 6
Reputation: 1098
@Peter Szanto 's answer work for me, but I don't like mess my source code.
And I can't make those MvnDebug
way work.
So I try another way, add plugin source as IDEA module.
Here is the detail step:
Clone the plugin source as an independent project.
In your project, go to File -> New -> Module from Exist Sources
and add the plugin project you clone in step 1.
Now you can open the plugin source code and set some break point.
Run your maven goal as debug mode, it should stop at the break point.
Upvotes: 2
Reputation: 6630
The easiest way to debug maven goal ONLY within IntelliJ is to create a regular maven goal and in the runner tab pass those VM options:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
Where 8000 is a port number for remote debugging.
Then create new Remote configuration with port 8000. Run this configuration after running maven goal.
Upvotes: 16
Reputation: 2050
Either You can refer to above answer Or just add this plugin to pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>
-Xdebug -
Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
</jvmArguments>
</configuration>
</plugin>
And run maven goal with mvn
instead of mvnDebug
. E.g. mvn spring-boot:run
In IDEA, add a Remote Configuration. Under Settings, set Transport: Socket, Debugger Mode: Attach, Host: localhost, Port: 8000 (default port of mvnDebug).
Run as Debug in IDEA , whenever you want to debug the code.
Upvotes: 3
Reputation: 7722
I think the easiest solution is to temporarily add the maven plugin as a dependency. Once this is done, IntelliJ will treat this just like any other dependency and you can set breakpoints the usual way.
Upvotes: 20
Reputation: 1737
Very easy. I am using Intellj Idea 15.0.4
Here is a screenshot:
Upvotes: 64
Reputation: 6214
Since you are working with Intellij, there is already a built-in debugger there and you do not need to necessarily use mvnDebug which is a command line tool. Check out this tutorial: How to Debug Maven Applications in Intellij IDEA.
The tutorial uses the Maven Exec Plugin and lets you debug the application without a need to use the command line or MvnDebug
. Thought sharing it might be of value here.
Upvotes: 3