[ 
https://issues.apache.org/jira/browse/MCOMPILER-209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16887123#comment-16887123
 ] 

Igor Bljahhin commented on MCOMPILER-209:
-----------------------------------------

Happy 5th year birthday, dear bug!

> 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.14#76016)

Reply via email to