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 );