Repository: maven Updated Branches: refs/heads/master ab7b5ab47 -> e84405162
[MNG-5359] Declared execution in PluginMgmt gets bound to lifecycle (regression) o Updated to add lifecycle plugins only if a phase of the lifecycle is requested to be executed. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/e8440516 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/e8440516 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/e8440516 Branch: refs/heads/master Commit: e84405162b8a228aaced264f48ec6a3e8ed261e8 Parents: ab7b5ab Author: Christian Schulte <schu...@apache.org> Authored: Sun Dec 20 19:32:57 2015 +0100 Committer: Christian Schulte <schu...@apache.org> Committed: Sun Dec 20 19:32:57 2015 +0100 ---------------------------------------------------------------------- .../project/DefaultMavenProjectBuilder.java | 1 + .../project/EmptyLifecyclePluginAnalyzer.java | 6 ++ .../execution/DefaultMavenExecutionRequest.java | 1 + .../maven/lifecycle/DefaultLifecycles.java | 4 +- .../lifecycle/LifeCyclePluginAnalyzer.java | 15 +++++ .../maven/lifecycle/LifecycleExecutor.java | 15 ++--- .../DefaultLifecyclePluginAnalyzer.java | 63 ++++++++++++++++++++ .../DefaultLifecycleBindingsInjector.java | 42 +++++++++---- .../maven/project/DefaultProjectBuilder.java | 1 + .../project/DefaultProjectBuildingRequest.java | 17 ++++++ .../maven/project/ProjectBuildingRequest.java | 20 +++++++ .../lifecycle/EmptyLifecyclePluginAnalyzer.java | 7 ++- .../stub/LifeCyclePluginAnalyzerStub.java | 6 ++ .../building/DefaultModelBuildingRequest.java | 17 ++++++ .../building/FilterModelBuildingRequest.java | 15 ++++- .../model/building/ModelBuildingRequest.java | 19 ++++++ .../model/plugin/DefaultReportingConverter.java | 6 ++ 17 files changed, 228 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java ---------------------------------------------------------------------- diff --git a/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java index 7bc5a5c..6834a17 100644 --- a/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java +++ b/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java @@ -101,6 +101,7 @@ public class DefaultMavenProjectBuilder { request.setActiveProfileIds( req.getActiveProfiles() ); request.setInactiveProfileIds( req.getInactiveProfiles() ); + request.setGoals( request.getGoals() ); } } } http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java ---------------------------------------------------------------------- diff --git a/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java b/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java index 672e07b..925e346 100644 --- a/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java +++ b/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java @@ -57,6 +57,12 @@ public class EmptyLifecyclePluginAnalyzer return plugins; } + @Override + public Set<Plugin> getPlugins( final String packaging, final Set<String> phases ) + { + return Collections.emptySet(); + } + private Plugin newPlugin( String artifactId, String... goals ) { Plugin plugin = new Plugin(); http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java index 71a6894..218b4ec 100644 --- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java +++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java @@ -1105,6 +1105,7 @@ public class DefaultMavenExecutionRequest projectBuildingRequest.setProfiles( getProfiles() ); projectBuildingRequest.setProcessPlugins( true ); projectBuildingRequest.setBuildStartTime( getStartTime() ); + projectBuildingRequest.setGoals( getGoals() ); } return projectBuildingRequest; http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java index 48cd0c5..788c2fe 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java @@ -66,9 +66,9 @@ public class DefaultLifecycles this.lifecycles = lifecycles; } - public Lifecycle get( String key ) + public Lifecycle get( String phase ) { - return getPhaseToLifecycleMap().get( key ); + return getPhaseToLifecycleMap().get( phase ); } /** http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/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 ed07c1d..770e013 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 @@ -28,5 +28,20 @@ import org.apache.maven.model.Plugin; */ public interface LifeCyclePluginAnalyzer { + + @Deprecated Set<Plugin> getPluginsBoundByDefaultToAllLifecycles( String packaging ); + + /** + * Gets the lifecycle {@code Plugin}s for a given packaging and set of phases. + * + * @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}. + * + * @since 3.4 + */ + Set<Plugin> getPlugins( String packaging, Set<String> phases ); + } http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java b/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java index 04c602c..15c9c54 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java @@ -47,20 +47,13 @@ public interface LifecycleExecutor @Deprecated String ROLE = LifecycleExecutor.class.getName(); - // For a given project packaging find all the plugins that are bound to any registered - // lifecycles. The project builder needs to now what default plugin information needs to be - // merged into POM being built. Once the POM builder has this plugin information, versions can be assigned - // by the POM builder because they will have to be defined in plugin management. Once this is setComplete then it - // can be passed back so that the default configuration information can be populated. - // - // We need to know the specific version so that we can lookup the right version of the plugin descriptor - // which tells us what the default configuration is. - // - /** * @return The plugins bound to the lifecycles of the specified packaging or {@code null} if the packaging is - * unknown. + * unknown. + * + * @deprecated Please use {@link LifeCyclePluginAnalyzer}. */ + @Deprecated Set<Plugin> getPluginsBoundByDefaultToAllLifecycles( String packaging ); MavenExecutionPlan calculateExecutionPlan( MavenSession session, String... tasks ) http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/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 a72ce8e..555498d 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 @@ -33,6 +33,7 @@ import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.StringUtils; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; @@ -128,6 +129,68 @@ public class DefaultLifecyclePluginAnalyzer return plugins.keySet(); } + @Override + public Set<Plugin> getPlugins( final String packaging, final Set<String> phases ) + { + if ( logger.isDebugEnabled() ) + { + logger.debug( "Looking up lifecyle mappings for packaging " + packaging + " from " + + Thread.currentThread().getContextClassLoader() ); + } + + final LifecycleMapping lifecycleMappingForPackaging = this.lifecycleMappings.get( packaging ); + final Map<Plugin, Plugin> plugins = new LinkedHashMap<>(); + + for ( final Lifecycle lifecycle : this.getOrderedLifecycles() ) + { + org.apache.maven.lifecycle.mapping.Lifecycle lifecycleConfiguration = + lifecycleMappingForPackaging.getLifecycles().get( lifecycle.getId() ); + + Map<String, LifecyclePhase> phaseToGoalMapping = null; + + if ( lifecycleConfiguration != null ) + { + phaseToGoalMapping = lifecycleConfiguration.getLifecyclePhases(); + } + else if ( lifecycle.getDefaultLifecyclePhases() != null ) + { + phaseToGoalMapping = lifecycle.getDefaultLifecyclePhases(); + } + + if ( phaseToGoalMapping != null ) + { + final Collection<String> lifecyclePhases = new ArrayList<>(); + + if ( lifecycleConfiguration != null && lifecycle.getPhases() != null ) + { + lifecyclePhases.addAll( lifecycle.getPhases() ); + } + else if ( lifecycle.getDefaultLifecyclePhases() != null ) + { + lifecyclePhases.addAll( lifecycle.getDefaultLifecyclePhases().keySet() ); + } + + lifecyclePhases.retainAll( phases ); + if ( !lifecyclePhases.isEmpty() ) + { + for ( final Map.Entry<String, LifecyclePhase> goalsForLifecyclePhase + : phaseToGoalMapping.entrySet() ) + { + final String phase = goalsForLifecyclePhase.getKey(); + final LifecyclePhase goals = goalsForLifecyclePhase.getValue(); + + if ( goals != null ) + { + parseLifecyclePhaseDefinitions( plugins, phase, goals ); + } + } + } + } + } + + return plugins.keySet(); + } + private List<Lifecycle> getOrderedLifecycles() { // NOTE: The lifecycle order can affect implied execution ids so we better be deterministic. http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/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 1401e30..9422be6 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 @@ -22,10 +22,12 @@ package org.apache.maven.model.plugin; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.maven.lifecycle.LifeCyclePluginAnalyzer; import org.apache.maven.model.Build; import org.apache.maven.model.Model; @@ -35,9 +37,6 @@ 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.ModelProblemCollector; -import org.apache.maven.model.building.ModelProblem.Severity; -import org.apache.maven.model.building.ModelProblem.Version; -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; @@ -55,21 +54,34 @@ public class DefaultLifecycleBindingsInjector private LifecycleBindingsMerger merger = new LifecycleBindingsMerger(); @Requirement - private LifeCyclePluginAnalyzer lifecycle; + private LifeCyclePluginAnalyzer lifecyclePluginAnalyzer; public void injectLifecycleBindings( Model model, ModelBuildingRequest request, ModelProblemCollector problems ) { - String packaging = model.getPackaging(); + final Set<String> phases = new HashSet<>(); - Collection<Plugin> defaultPlugins = lifecycle.getPluginsBoundByDefaultToAllLifecycles( packaging ); - - if ( defaultPlugins == null ) + if ( request.getGoals() != null ) { - problems.add( new ModelProblemCollectorRequest( Severity.ERROR, Version.BASE ) - .setMessage( "Unknown packaging: " + packaging ) - .setLocation( model.getLocation( "packaging" ) ) ); + for ( final String goal : request.getGoals() ) + { + if ( !this.isGoalSpecification( goal ) ) + { + phases.add( goal ); + } + } } - else if ( !defaultPlugins.isEmpty() ) + + final String packaging = model.getPackaging(); + + // MNG-5359: request.setGoals() may not have been called since the goals got added for MNG-5359 in 3.4. In this + // case fall back to the pre 3.4 behaviour. Usages of ProjectBuildingRequest and ModelBuildingRequest + // without setting the goals should behave the same way as before. + final Collection<Plugin> defaultPlugins = + request.getGoals() == null + ? lifecyclePluginAnalyzer.getPluginsBoundByDefaultToAllLifecycles( packaging ) + : lifecyclePluginAnalyzer.getPlugins( packaging, phases ); + + if ( !defaultPlugins.isEmpty() ) { Model lifecycleModel = new Model(); lifecycleModel.setBuild( new Build() ); @@ -79,6 +91,12 @@ public class DefaultLifecycleBindingsInjector } } + // Copied from 'DefaultLifecycleTaskSegmentCalculator'. + private boolean isGoalSpecification( String task ) + { + return task.indexOf( ':' ) >= 0; + } + protected static class LifecycleBindingsMerger extends MavenModelMerger { http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java index fb15c87..3b3fe74 100644 --- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java +++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java @@ -272,6 +272,7 @@ public class DefaultProjectBuilder request.setBuildStartTime( configuration.getBuildStartTime() ); request.setModelResolver( resolver ); request.setModelCache( new ReactorModelCache() ); + request.setGoals( configuration.getGoals() ); return request; } http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java index 97eb276..ab5de1c 100644 --- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java +++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java @@ -20,6 +20,7 @@ package org.apache.maven.project; */ import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Properties; @@ -67,6 +68,8 @@ public class DefaultProjectBuildingRequest private RepositoryMerging repositoryMerging = RepositoryMerging.POM_DOMINANT; + private List<String> goals; + public DefaultProjectBuildingRequest() { processPlugins = true; @@ -96,6 +99,7 @@ public class DefaultProjectBuildingRequest setProject( request.getProject() ); setResolveDependencies( request.isResolveDependencies() ); setValidationLevel( request.getValidationLevel() ); + setGoals( request.getGoals() ); } public MavenProject getProject() @@ -339,6 +343,19 @@ public class DefaultProjectBuildingRequest return this; } + @Override + public List<String> getGoals() + { + return this.goals; + } + + @Override + public DefaultProjectBuildingRequest setGoals( final List<String> value ) + { + this.goals = value != null ? Collections.unmodifiableList( value ) : null; + return this; + } + public RepositoryMerging getRepositoryMerging() { return repositoryMerging; http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java b/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java index 17a53b1..c87c8d9 100644 --- a/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java +++ b/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java @@ -185,6 +185,26 @@ public interface ProjectBuildingRequest ProjectBuildingRequest setResolveVersionRanges( boolean value ); /** + * Gets the goals the user requested to execute. + * + * @return An unmodifiable set of goals to execute or {@code null}. + * + * @since 3.4 + */ + List<String> getGoals(); + + /** + * Sets the goals the user requested to execute. + * + * @param value Set of goals the user requested to execute or {@code null}. + * + * @return This request, newver {@code null}. + * + * @since 3.4 + */ + ProjectBuildingRequest setGoals( List<String> value ); + + /** * The possible merge modes for combining remote repositories. */ enum RepositoryMerging http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java ---------------------------------------------------------------------- diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java b/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java index a812c26..b0df34d 100644 --- a/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java +++ b/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java @@ -56,6 +56,12 @@ public class EmptyLifecyclePluginAnalyzer return plugins; } + @Override + public Set<Plugin> getPlugins( final String packaging, final Set<String> phases ) + { + return Collections.emptySet(); + } + private Plugin newPlugin( String artifactId, String... goals ) { Plugin plugin = new Plugin(); @@ -73,5 +79,4 @@ public class EmptyLifecyclePluginAnalyzer return plugin; } - } http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifeCyclePluginAnalyzerStub.java ---------------------------------------------------------------------- diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifeCyclePluginAnalyzerStub.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifeCyclePluginAnalyzerStub.java index b067e24..8372179 100644 --- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifeCyclePluginAnalyzerStub.java +++ b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifeCyclePluginAnalyzerStub.java @@ -53,6 +53,12 @@ public class LifeCyclePluginAnalyzerStub return plugins; } + @Override + public Set<Plugin> getPlugins( final String packaging, final Set<String> phases ) + { + return Collections.emptySet(); + } + private Plugin newPlugin( String artifactId, String... goals ) { Plugin plugin = new Plugin(); http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java ---------------------------------------------------------------------- diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java index a3505c9..f5e1c83 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java @@ -21,6 +21,7 @@ package org.apache.maven.model.building; import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Properties; @@ -73,6 +74,8 @@ public class DefaultModelBuildingRequest private WorkspaceModelResolver workspaceResolver; + private List<String> goals; + /** * Creates an empty request. */ @@ -101,6 +104,7 @@ public class DefaultModelBuildingRequest setModelResolver( request.getModelResolver() ); setModelBuildingListener( request.getModelBuildingListener() ); setModelCache( request.getModelCache() ); + setGoals( request.getGoals() ); } @Override @@ -405,4 +409,17 @@ public class DefaultModelBuildingRequest return this; } + @Override + public List<String> getGoals() + { + return this.goals; + } + + @Override + public ModelBuildingRequest setGoals( final List<String> value ) + { + this.goals = value != null ? Collections.unmodifiableList( value ) : null; + return this; + } + } http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java ---------------------------------------------------------------------- diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java index c5c2cbf..480668c 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java @@ -282,4 +282,17 @@ class FilterModelBuildingRequest return this; } -} \ No newline at end of file + @Override + public List<String> getGoals() + { + return request.getGoals(); + } + + @Override + public ModelBuildingRequest setGoals( final List<String> value ) + { + request.setGoals( value ); + return this; + } + +} http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java ---------------------------------------------------------------------- diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java index c10274d..e1cad14 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java @@ -335,4 +335,23 @@ public interface ModelBuildingRequest ModelBuildingRequest setWorkspaceModelResolver( WorkspaceModelResolver workspaceResolver ); + /** + * Gets the goals the user requested to execute. + * + * @return An unmodifiable set of goals to execute or {@code null}. + * + * @since 3.4 + */ + List<String> getGoals(); + + /** + * Sets the goals the user requested to execute. + * + * @param value Set of goals the user requested to execute or {@code null}. + * + * @return This request, newver {@code null}. + * + * @since 3.4 + */ + ModelBuildingRequest setGoals( List<String> value ); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/e8440516/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java ---------------------------------------------------------------------- diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java index d918d9e..4d2bef1 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java @@ -66,6 +66,12 @@ public class DefaultReportingConverter { sitePlugin = new Plugin(); sitePlugin.setArtifactId( "maven-site-plugin" ); + + // MNG-5359: Since the site plugin is no longer added if not requested by the user, a version needs to be + // provided here. This version should be kept in sync with the version declared for the 'site' + // lifecycle. Prior to MNG-5359, findSitePlugin( build ) never returned 'null'. + sitePlugin.setVersion( "3.3" ); + PluginManagement pluginManagement = build.getPluginManagement(); if ( pluginManagement == null ) {