You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2014/02/08 19:22:38 UTC

git commit: [MNG-5572] Warn for building plugins with extensions in a reactor

Updated Branches:
  refs/heads/master b4a778035 -> f6bb98f58


[MNG-5572] Warn for building plugins with extensions in a reactor


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/f6bb98f5
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/f6bb98f5
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/f6bb98f5

Branch: refs/heads/master
Commit: f6bb98f5843178dc5cd3fef3ee8ee842256c9d47
Parents: b4a7780
Author: Robert Scholte <rf...@codehaus.org>
Authored: Sat Feb 8 19:21:34 2014 +0100
Committer: Robert Scholte <rf...@codehaus.org>
Committed: Sat Feb 8 19:21:34 2014 +0100

----------------------------------------------------------------------
 .../java/org/apache/maven/DefaultMaven.java     | 35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/f6bb98f5/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index e1b66a3..7afc2d9 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -28,6 +28,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -48,6 +49,7 @@ import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.ProjectDependencyGraph;
 import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
 import org.apache.maven.lifecycle.internal.LifecycleStarter;
+import org.apache.maven.model.Plugin;
 import org.apache.maven.model.building.ModelProblem;
 import org.apache.maven.model.building.ModelProblemUtils;
 import org.apache.maven.model.building.ModelSource;
@@ -249,6 +251,8 @@ public class DefaultMaven
             return addExceptionToResult( result, e );
         }
 
+        validateProjects( projects );
+
         //
         // This creates the graph and trims the projects down based on the user request using something like:
         //
@@ -724,6 +728,37 @@ public class DefaultMaven
         return index;
     }
 
+    private void validateProjects( List<MavenProject> projects )
+    {
+        Map<String, MavenProject> projectsMap = new HashMap<String, MavenProject>();
+
+        for ( MavenProject project : projects )
+        {
+            String projectKey = ArtifactUtils.key( project.getGroupId(), project.getArtifactId(), project.getVersion() );
+
+            projectsMap.put( projectKey, project );
+        }
+
+        for ( MavenProject project : projects )
+        {
+            // MNG-1911 / MNG-5572: Building plugins with extensions cannot be part of reactor 
+            for ( Plugin plugin : project.getBuildPlugins() )
+            {
+                if ( plugin.isExtensions() )
+                {
+                    String pluginKey =
+                        ArtifactUtils.key( plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion() );
+
+                    if ( projectsMap.containsKey( pluginKey ) )
+                    {
+                        logger.warn( project.getName() + " uses " + plugin.getKey()
+                            + " as extensions, which is not possible within the same reactor build. This plugin was pulled from the local repository!" );
+                    }
+                }
+            }
+        }
+    }
+
     private void validateActivatedProfiles( List<MavenProject> projects, List<String> activeProfileIds )
     {
         Collection<String> notActivatedProfileIds = new LinkedHashSet<String>( activeProfileIds );