Fom 7.4 to 8.5 daemon from hell

So I liked no-daemon. This new version magically want to “honour” jvm settings, and therefor makes a daemon. This I don’t understand. I don’t have jvmargs set, so I don’t know what it is doing.

Bottom line is I run the tomcat plugin and while it seems like it work I Can’t get debugger arguments to the daemon which I think it is running in. I tried GRAILS_OPTS, JAVA_OPTS but the debugger port is always on the grails client not the tomcat stuff.

I wish there was a no-daemon that actually worked. 7 I Was good!

In most cases --no-daemon actually means start a one-off daemon that is discarded after the build and unless you had specific configuration that was also the case in 7.

You can make --no-daemon really not use a daemon, but for that you need to change the JVM parameters of the CLI so that they are compatible for being used as in-process daemon. This mainly is about some JVM arguments that can’t be changed in the running process. This for example includes heap settings and the Gradle instrumentation Java agent that is for example necessary to detect configuration cache inputs.

If you search here or on gradle-community #community-support you should find something by me where I am even more concrete, but I’m on mobile right now and don’t remember where it was.

But usually this is by far not worth the effort and for sure not to debug something, as you can make various things debuggable easily. You just need to know where the thing you want to debug is executed. In the daemon, on a test worker process, in a JavaExec task, …

If it is in the daemon, just use -Dorg.gradle.debug=true for example, then you can attach your debugger to port 5005 by default.