You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/11/20 23:41:35 UTC

svn commit: r1411914 - in /maven/plugins/trunk/maven-compiler-plugin: pom.xml src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java

Author: olamy
Date: Tue Nov 20 22:41:35 2012
New Revision: 1411914

URL: http://svn.apache.org/viewvc?rev=1411914&view=rev
Log:
[MCOMPILER-187] incremental stuff detect changes even if nothing has changed means too much compilation.

Modified:
    maven/plugins/trunk/maven-compiler-plugin/pom.xml
    maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java

Modified: maven/plugins/trunk/maven-compiler-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/pom.xml?rev=1411914&r1=1411913&r2=1411914&view=diff
==============================================================================
--- maven/plugins/trunk/maven-compiler-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-compiler-plugin/pom.xml Tue Nov 20 22:41:35 2012
@@ -133,7 +133,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-shared-incremental</artifactId>
-      <version>1.0</version>
+      <version>1.1-SNAPSHOT</version>
     </dependency>
 
     <dependency>

Modified: maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java?rev=1411914&r1=1411913&r2=1411914&view=diff
==============================================================================
--- maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java (original)
+++ maven/plugins/trunk/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java Tue Nov 20 22:41:35 2012
@@ -28,6 +28,7 @@ import org.apache.maven.plugins.annotati
 import org.apache.maven.shared.incremental.IncrementalBuildHelper;
 import org.apache.maven.shared.utils.ReaderFactory;
 import org.apache.maven.shared.utils.StringUtils;
+import org.apache.maven.shared.utils.io.FileUtils;
 import org.apache.maven.toolchain.Toolchain;
 import org.apache.maven.toolchain.ToolchainManager;
 import org.codehaus.plexus.compiler.Compiler;
@@ -346,6 +347,14 @@ public abstract class AbstractCompilerMo
     @Component
     protected MavenSession mavenSession;
 
+    /**
+     * file extensions to check timestamp for incremental build
+     * <b>default is .class</b>
+     * @since 3.1
+     */
+    @Parameter
+    private List<String> fileExtensions;
+
     protected abstract SourceInclusionScanner getSourceInclusionScanner( int staleMillis );
 
     protected abstract SourceInclusionScanner getSourceInclusionScanner( String inputFileEnding );
@@ -1025,6 +1034,12 @@ public abstract class AbstractCompilerMo
             return false;
         }
 
+        if( fileExtensions == null || fileExtensions.isEmpty())
+        {
+            fileExtensions = new ArrayList();
+            fileExtensions.add( ".class" );
+        }
+
         Date buildStartTime = getBuildStartTime();
 
         for ( String classPathElement : getClasspathElements() )
@@ -1045,6 +1060,12 @@ public abstract class AbstractCompilerMo
         return false;
     }
 
+    /**
+     *
+     * @param classPathEntry entry to check
+     * @param buildStartTime time build start
+     * @return if any changes occured
+     */
     private boolean hasNewFile( File classPathEntry, Date buildStartTime )
     {
         if ( !classPathEntry.exists() )
@@ -1054,7 +1075,8 @@ public abstract class AbstractCompilerMo
 
         if ( classPathEntry.isFile() )
         {
-            return classPathEntry.lastModified() >= buildStartTime.getTime();
+            return classPathEntry.lastModified() >= buildStartTime.getTime() && fileExtensions.contains(
+                FileUtils.getExtension( classPathEntry.getName() ) );
         }
 
         File[] children = classPathEntry.listFiles();