Repository: maven Updated Branches: refs/heads/master e84405162 -> cc006b544
[MNG-5359] Declared execution in PluginMgmt gets bound to lifecycle (regression) o Updated to restore reporting of unsupported packagings. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/cc006b54 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/cc006b54 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/cc006b54 Branch: refs/heads/master Commit: cc006b544f0e21683d955e2175b06e864e64329f Parents: e844051 Author: Christian Schulte <[email protected]> Authored: Sun Dec 20 21:35:37 2015 +0100 Committer: Christian Schulte <[email protected]> Committed: Sun Dec 20 21:35:37 2015 +0100 ---------------------------------------------------------------------- .../lifecycle/LifeCyclePluginAnalyzer.java | 3 ++- .../DefaultLifecyclePluginAnalyzer.java | 20 +++++++++++++------- .../DefaultLifecycleBindingsInjector.java | 12 +++++++++++- 3 files changed, 26 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/cc006b54/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java b/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java index 770e013..1d4e7f8 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java @@ -38,7 +38,8 @@ public interface LifeCyclePluginAnalyzer * @param packaging The packaging to get plugins for. * @param phases The phases to get plugins for. * - * @return All lifecycle {@code Plugin}s for the given {@code packaging} and {@code phases}. + * @return All lifecycle {@code Plugin}s for the given {@code packaging} and {@code phases} + * or {@code null}, if {@code packaging} does not identify a supported packaging. * * @since 3.4 */ http://git-wip-us.apache.org/repos/asf/maven/blob/cc006b54/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java index 555498d..27159e4 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java @@ -139,6 +139,12 @@ public class DefaultLifecyclePluginAnalyzer } final LifecycleMapping lifecycleMappingForPackaging = this.lifecycleMappings.get( packaging ); + + if ( lifecycleMappingForPackaging == null ) + { + return null; + } + final Map<Plugin, Plugin> plugins = new LinkedHashMap<>(); for ( final Lifecycle lifecycle : this.getOrderedLifecycles() ) @@ -215,25 +221,25 @@ public class DefaultLifecyclePluginAnalyzer List<LifecycleMojo> mojos = goals.getMojos(); if ( mojos != null ) { - + for ( int i = 0; i < mojos.size(); i++ ) { LifecycleMojo mojo = mojos.get( i ); - + GoalSpec gs = parseGoalSpec( mojo.getGoal() ); - + if ( gs == null ) { logger.warn( "Ignored invalid goal specification '" + mojo.getGoal() + "' from lifecycle mapping for phase " + phase ); continue; } - + Plugin plugin = new Plugin(); plugin.setGroupId( gs.groupId ); plugin.setArtifactId( gs.artifactId ); plugin.setVersion( gs.version ); - + Plugin existing = plugins.get( plugin ); if ( existing != null ) { @@ -247,14 +253,14 @@ public class DefaultLifecyclePluginAnalyzer { plugins.put( plugin, plugin ); } - + PluginExecution execution = new PluginExecution(); execution.setId( getExecutionId( plugin, gs.goal ) ); execution.setPhase( phase ); execution.setPriority( i - mojos.size() ); execution.getGoals().add( gs.goal ); execution.setConfiguration( mojo.getConfiguration() ); - + plugin.setDependencies( mojo.getDependencies() ); plugin.getExecutions().add( execution ); } http://git-wip-us.apache.org/repos/asf/maven/blob/cc006b54/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java b/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java index 9422be6..3933e14 100644 --- a/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java +++ b/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java @@ -36,7 +36,10 @@ import org.apache.maven.model.PluginContainer; import org.apache.maven.model.PluginExecution; import org.apache.maven.model.PluginManagement; import org.apache.maven.model.building.ModelBuildingRequest; +import org.apache.maven.model.building.ModelProblem.Severity; +import org.apache.maven.model.building.ModelProblem.Version; import org.apache.maven.model.building.ModelProblemCollector; +import org.apache.maven.model.building.ModelProblemCollectorRequest; import org.apache.maven.model.merge.MavenModelMerger; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @@ -81,7 +84,14 @@ public class DefaultLifecycleBindingsInjector ? lifecyclePluginAnalyzer.getPluginsBoundByDefaultToAllLifecycles( packaging ) : lifecyclePluginAnalyzer.getPlugins( packaging, phases ); - if ( !defaultPlugins.isEmpty() ) + if ( defaultPlugins == null ) + { + problems.add( new ModelProblemCollectorRequest( Severity.ERROR, Version.BASE ). + setMessage( "Unknown packaging: " + packaging ). + setLocation( model.getLocation( "packaging" ) ) ); + + } + else if ( !defaultPlugins.isEmpty() ) { Model lifecycleModel = new Model(); lifecycleModel.setBuild( new Build() );
