maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Ekstrand (JIRA)" <j...@codehaus.org>
Subject [jira] (MCOMPILER-209) Incremental compilation doesn't work unless useIncrementalCompilation is set to 'false'
Date Tue, 09 Jul 2013 14:14:05 GMT

     [ https://jira.codehaus.org/browse/MCOMPILER-209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Michael Ekstrand updated MCOMPILER-209:
---------------------------------------

    Description: 
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.

  was:
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.

The result of all this is incremental compilation with Maven is very confusing and difficult
to understand.

    
> Incremental compilation doesn't work unless useIncrementalCompilation is set to 'false'
> ---------------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-209
>                 URL: https://jira.codehaus.org/browse/MCOMPILER-209
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.1
>            Reporter: Michael Ekstrand
>
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message