Compiling my Groovy projects have always taken a long time. I sort of assumed it was due to (and happily blamed) the virus checker.
But it looks like it is due to Groovy compilation not being incremental.
If I change one or two files, all 112 .groovy-files in the project ends up being compiled again.
Is this intentional (as in, too hard to determine cross-references in Groovy, so recompile all to be safe), or is something broken in Gradle (or my setup)?
I don’t remember having had problems with Ant, but maybe I’m not pushing the envelope, or I just resolved to clean re-builds and have forgotten about it.
Sounds like a very interesting problem to solve though.
Presumably, Eclipse and other IDEs can do incremental compilation because they have a live model of the inter-class dependencies?!
Do you have references to specific/known flaws in Ant/Maven? Sounds like a fun winter project
You can still use the Ant compiler as they do in OpenJFX (Ant compiler is used if a particular property says so). This means, that you have to accept the flaws. See the relevant post of Richard Bair: http://forums.gradle.org/gradle/topics/faster_incremental_builds.
@Luke: Do you have some info on JEP-139? When (or if) we can expect incremental compilation.
Based on what I read on the openjdk-compiler-dev list, JEP-139 appears to be an internal feature that won’t ship with Oracle JDK 8.
As for incremental Groovy (rather than Java) compilation, the best chance to get that in Ant/Maven/Gradle is to use the standalone Groovy-Eclipse compiler. Gradle doesn’t currently have out-of-the-box support for that compiler, so you’d have to integrate it on your own. (G)Maven does support it, but I don’t know if they support incremental compilation.
Thanks for the info. There seems to be some hope for the future given this comment: “evaluate how it should integrated into the full product”. It is a little optimistic though considering Jigsaw was promised for Java 7. Maybe if they were moving to Gradle …