I'm always in favor of anything that would lower our building time and apparently, gradle supports parallel execution[1]. Will this ease the project importing process to Eclipse ? This is usually a problem to me. I have to close projects to avoid displaying their build errors, define source folders, run mvn eclipse:eclipse (and some say I don't have to) and still have a couple of projects showing build errors in Eclipse.
Do you know if Gradle will make lives easier to use with Eclipse ? [1] https://guides.gradle.org/performance/#easy_improvements Thanks, Gelbana On Sun, Mar 10, 2019 at 11:35 AM Vladimir Sitnikov < sitnikov.vladi...@gmail.com> wrote: > Hi, > > I wonder what you think of migrating Maven to Gradle. > > I think one of the main points for having Gradle would be: > 1) Eliminate "mvn install" for local testing. Calcite consists of > multiple Maven modules, however Maven always uses jars from the local > repository. > That is if you modify a file in "core", then you can't just invoke mvn > test from "cassandra". You have to "mvn install" "core" first. > There are workarounds (e.g. "mvn install" all the modules every time) > > In Gradle, "multi-module" build feels more like "always composite > module". In other words, even if you invoke "build" task from within > "core" module, Gradle would find all the modules in current project, > it would compute all the dependencies and build accordingly. > In my opinion it makes a big difference. > > There's a support for cross-project incremental builds as well. I > haven't used that, however the idea there is that one can have > "calcite" and "drill" as different Gradle projects, however one can > modify a file in Calcite and invoke "build" from a Drill folder. It > would build Calcite first. > > 2) Maven task/plugins often fail to declare inputs/outputs. This > causes issues like MSHARED-394: Avoid rewrite of destination in > DefaultMavenFileFilter#filterFile when producing the same contents. > Gradle embrases tasks authors to declare inputs outputs (e.g. files or > just property values) and it enables the build system to track stale > tasks. > > Gradle supports "buildSrc" folder which can contain code that is > available to the buildfiles of a current project. It enables to > express build logic in a much more sound programming language than > XML. > > Vladimir >