[ https://issues.apache.org/jira/browse/MCOMPILER-209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16404589#comment-16404589 ]
Oliver Gierke commented on MCOMPILER-209: ----------------------------------------- Should I be concerned about the test coverage of that particular area of the code, assuming the provided PR basically inverting the logic actually not breaking a test? 🤔 > Incremental compilation doesn't work unless useIncrementalCompilation is set > to 'false' > --------------------------------------------------------------------------------------- > > Key: MCOMPILER-209 > URL: https://issues.apache.org/jira/browse/MCOMPILER-209 > Project: Maven Compiler Plugin > Issue Type: Bug > Affects Versions: 3.1 > Reporter: Michael Ekstrand > Priority: Major > Attachments: > MCOMPILER_209_reversed_if_else_branches_for_useIncrementalCompilation_flag.patch, > SO_AJ_MavenSoftExceptions.zip > > > The compiler plugin has the > [useIncrementalCompilation|https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#useIncrementalCompilation] > flag. However, when this flag is set to {{true}} and using the {{javac}} > compiler, the compilation is not very incremental; the compiler always at > least claims it is rebuilding all source files (and compile times are > consistent with this being what it is actually doing, though it is hard to > tell). If I set {{useIncrementalCompilation}} to {{false}}, then it actually > does report that some modules are up-to-date, and some only need a subset of > their files compiled. > It seems that one or more of the following is happening: > * {{useIncrementalCompilation}} has some meaning that is very different from > what a user would expect, actually controlling whether the compiler plugin > uses some internal incremental compilation mechanism vs. incremental > compilation support built-in to the particular compiler backend. One would > expect this flag to turn on incremental compilation vs. build-everything. > * The log messages do not reflect what it is actually doing; that is, it > seems possible that it's saying "Compiling 164 source files" when it's really > handing 164 source files off to the compiler for potential compilation. If > this is the case, it is very confusing and misleading. > * The logic of {{useIncrementalCompilation}} is just inverted. Looking at > the source code for the abstract compiler MOJO, it doesn't look like it's > quite this simple, but I also don't know what all the various components at > work are doing. > * There is a bug in the implementation of {{useIncrementalCompilation}}. > The result of all this is incremental compilation with Maven is very > confusing and difficult to understand. -- This message was sent by Atlassian JIRA (v7.6.3#76005)