Hi, I'm sure lots of us have seen during Maven build even though the sources were not changed: Compiling 1155 source files to .../code/calcite/core/target/classes
The issue there is FMPP generates Parser.jj no matter what, and it causes JavaCC to re-generate parser which causes maven-compiler-plugin to compile calcite-core again. Note: Maven sends all the files to javac and it assumes javac is intelligent enough to identify which files were modified and which need to be recompiled. Unfortunately, regular javac is not incremental, and it basically builds the whole source tree (see https://issues.apache.org/jira/browse/MCOMPILER-209 ) I propose to use org.apache.drill.tools:drill-fmpp-maven-plugin instead of com.googlecode.fmpp-maven-plugin:fmpp-maven-plugin. Drill's fmpp plugin compares outputs, thus it skips overwrite of Parser.jj, and it improves Calcite Core build times. I'm sure IDEs would be happier since Parser.jj and the generated parser are quite big and IDE won't have to re-parse it. JIRA: https://issues.apache.org/jira/browse/CALCITE-2558 PR: https://github.com/apache/calcite/pull/832 >From my point of view this is an improvement with no drawbacks. Any thoughts? Objections? Vladimir
