How do you attach a debugger to gradle so that I can debug it running a task?

(Stefan Krawczyk) #1


I want to attach a debugger so that I can debug through eclipse what gradle is doing.

However there seems to be no documentation on how to do this.

All I have found is this from

Setting a system property of taskName.debug will run the tests in debug mode, suspended and listening on port 5005. For example: gradle test -Dtest.single=ThisUniquelyNamedTest -Dtest.debug

but that doesn’t seem to work for arbitrary tasks. e.g. gradle tasks -Dtasks.debug

Any pointers would be appreciated.



How to stop on breakpoint in gradle script using intellij Version: 2016.1.1
(Peter Niederwieser) #2

Just debug it like you would debug any external Java application. Depending on which debug settings you want, put something like the following into GRADLE_OPTS:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006

Then start the build and debug it from Eclipse.

(Stefan Krawczyk) #3

Awesome thanks.

(rainer.frey) #4

Is there any way to get eclipse to recognize break points in .gradle files?

(Mark Petrovic) #5

I, too, want to debug into Gradle code to better understand test report generation. I was having problems getting GRADLE_OPTS to propagate to spawned JVMs (I must have been doing something wrong). By that I mean that the JVM that handles the command line invocation of Gradle is not the same one that handles running your tests, and I could not get my debugger client (IntelliJ) to stop at a breakpoint in Gradle code in the test-running VM.

Here is how I solved it. Add the JVM debugging config to $HOME/.gradle/ like this:

$ cat ~/.gradle/
org.gradle.jvmargs=-XX:MaxPermSize=4g -XX:+HeapDumpOnOutOfMemoryError -Xmx4g -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006

Do something that starts the daemon:

$ gradle --daemon

Then attach your debugger client to port 5006, set your breakpoint, then run your test.

Works for me.

(Mark Petrovic) #6

Thanks, Peter. That -Dorg.gradle.debug=true property is good to know, and was what I was looking for.

Maybe that property would be a good one to mention here:


(Peter Niederwieser) #7

It would certainly be useful, but I think it’s not considered public.

(Mark Petrovic) #8

Got it.

I think it should be public. Either that, or go with my solution. I like yours better.



gradle someTask --no-daemon -Dorg.gradle.debug=true does let me connect to gradle from the eclipse debugger, but still ignored breakpoints.

Anything special needed in the eclipse debug task config?

(fabio angelini) #10

So what are the correct steps in order to debug a gradle script ?

(Peter Niederwieser) #11

See my post above. Setting breakpoints in build scripts isn’t currently supported, but you should be able to set breakpoints in plugin or task classes.


Some more information on this would definitely be helpful. I’ve mad mixed results with eclipse & gradle so far.

I have been able to debug java/groovy that’s being called from gradle when running on anther system and using eclipse’s remote java app debug config combined with the GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"

Note that this needs to be set in the env, it’s not picked up from ~/.gradle/ as documented. Maybe I’m doing something wrong, but this is ignored: org.gradle.jvmargs="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"

I’ve had mixed results being able to stop on breakpoints when running as a remote java app. It’s probably related to where eclipse is looking for src/class files and maybe I don’t have that setup exactly right.

What I’d like to do is run gradle directly from eclipse directly and be able to hit breakpoints in my buildSrc/**/src/main/java classes.

I did the eclipse import gradle project for my project, and it recognizes it as a gradle project, but I don’t see how to run/debug it from eclipse.

What is the best way to debug gradle plugins?
(Chris May) #13

I just tried this one, and it worked out of the box:

(Ko-Chih Wu) #14

It can be done by adding -Dtest.debug, e.g. gradle test -Dtest.single=ThisUniquelyNamedTest -Dtest.debug. See

(Paul Michael Reilly) #15

How would I configure Eclipse to debug a Gradle script such that I can put breakpoints in Gradle’s groovy and java source files?

(Peter Niederwieser) #16

‘GRADLE_OPTS’ is only used by the Gradle (client) JVM. Your code should attach a debugger to the daemon JVM, not the test JVM.

The easiest way to debug a Gradle build is ‘gradle someTask --no-daemon -Dorg.gradle.debug=true’. Tests can be debugged with ‘gradle test -Dtest.debug=true’.