Hi, I've started a PR for migrating Avatica build system from Maven to Gradle: https://github.com/apache/calcite-avatica/pull/104
Some of the Gradle benefits can be found in https://issues.apache.org/jira/browse/CALCITE-2905 As of now PR is good enough to try how Gradle build feels. It builds the project, loads it to IDE, enables to execute tests, etc, etc. If you are new to Gradle, you might find the following set of commands useful (not everything works in Avatica's build, yet lots of basic commands do): https://github.com/vlsi/jmeter/blob/gradle/gradle.md I've put a list of "todo items" at the top of PR104. Feel free to suggest new items (or remove items). Comments are welcome. Just a couple of datapoints: 1) "Repeated build of avatica-core without modifications" mvn package -DskipTests: 18sec, 24sec, 21sec, 18sec gw build -x test: 14sec, 1sec, 1sec, 1sec As you see, Gradle recognizes that nothing should be compiled. Maven seems to perform checkstyle and full compilation even for no-op cases. 2) "Alter string literal in AvaticaStatement#checkOpen and build with tests" mvn package: 20sec, 19sec gw build -x test: 15sec, 15sec, 15ec 3) "Alter string literal in server/...HttpServer#stop and build with tests" Two points here: 3.1) "clean" build is comparable (even though `clean` should be extremely rare) 3.2) Gradle figured out that change in server/...HttpServer#stop does not impact core, thus it avoided "core" compilation, tests, etc. mvn package: 56sec, 48sec, 48sec gw build: 50sec, 22sec, 22sec Vladimir
