This message was deleted.
# community-support
s
This message was deleted.
a
j
I think this is referring to Java compilation. The wording is quite confusing. There are three different ways how Gradle can run Java compilation. I couldn’t find good docs on this. So this what it roughly is: 1. If you configure nothing, Java compilation will run in the Gradle daemon process using the same JVM Gradle runs on to compile the code (using Java’s Compiler APIs). 2. You can also run the compilation in a compiler daemon (or compiler worker, how it would probably be called today to be in line with Gradle’ general Worker API). This means that a separate JVM process is started in which the compilation is performed. But the process stays alive and communicates with the Gradle daemon. So it is reused when one compile task finished and another needs a compile daemon/worker again. It’s not super clear when this mode is chosen (I always forget). If you use the “toolchains” feature, and configure a JVM different from the one Gradle is running on, it will definitely use this mode. If you set “options.isFork = true” on the compile task, you will also trigger this mode to be used. You can then control details of the “compiler daemon” JVM (for example “options.forkOptions.memoryMaximumSize”). 3. A third alternative is to configure a
javac
executable (or a Java Home where the executable is in) in the “Fork Options” of the compile task. Then Gradle directly starts a “javac” process for each compilation. This is usually more expensive.