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 <[email protected]> Authored: Sat Feb 8 19:21:34 2014 +0100 Committer: Robert Scholte <[email protected]> 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 );
