You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2019/01/14 10:52:51 UTC
[maven] 01/01: [MNG-6562] added WARNING on default bindings plugins
unlocked versions
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch MNG-6562
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 05bc5c15dd37290e51190c6aa3fe4eb4a5bce62c
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Mon Jan 14 11:50:57 2019 +0100
[MNG-6562] added WARNING on default bindings plugins unlocked versions
---
.../plugin/DefaultLifecycleBindingsInjector.java | 35 ++++++++++++++++++----
1 file changed, 30 insertions(+), 5 deletions(-)
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 0a3660b..a91290e 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,6 +22,7 @@ package org.apache.maven.model.plugin;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -75,7 +76,21 @@ public class DefaultLifecycleBindingsInjector
lifecycleModel.setBuild( new Build() );
lifecycleModel.getBuild().getPlugins().addAll( defaultPlugins );
- merger.merge( model, lifecycleModel );
+ Collection<Plugin> defaultVersionPlugins = merger.merge( model, lifecycleModel );
+ if ( defaultVersionPlugins != null )
+ {
+ List<String> plugins = new ArrayList<>( defaultVersionPlugins.size() );
+ for ( Plugin p : defaultVersionPlugins )
+ {
+ plugins.add( p.getArtifactId() );
+ }
+
+ problems.add( new ModelProblemCollectorRequest( Severity.WARNING, Version.BASE )
+ .setMessage( "Version not locked for default bindings plugins " + plugins
+ + ", you should define versions in pluginManagement section of your "
+ + "pom.xml or parent" )
+ .setLocation( model.getLocation( "packaging" ) ) );
+ }
}
}
@@ -87,18 +102,21 @@ public class DefaultLifecycleBindingsInjector
{
private static final String PLUGIN_MANAGEMENT = "plugin-management";
+ private static final String NO_VERSION_PLUGINS = "no-version-plugins";
- public void merge( Model target, Model source )
+ public Collection<Plugin> merge( Model target, Model source )
{
if ( target.getBuild() == null )
{
target.setBuild( new Build() );
}
- Map<Object, Object> context =
- Collections.<Object, Object>singletonMap( PLUGIN_MANAGEMENT, target.getBuild().getPluginManagement() );
+ Map<Object, Object> context = new HashMap<Object, Object>();
+ context.put( PLUGIN_MANAGEMENT, target.getBuild().getPluginManagement() );
mergePluginContainer_Plugins( target.getBuild(), source.getBuild(), false, context );
+
+ return (Collection<Plugin>) context.get( NO_VERSION_PLUGINS );
}
@SuppressWarnings( { "checkstyle:methodname" } )
@@ -144,7 +162,8 @@ public class DefaultLifecycleBindingsInjector
for ( Plugin managedPlugin : pluginMgmt.getPlugins() )
{
Object key = getPluginKey( managedPlugin );
- Plugin addedPlugin = added.get( key );
+ Plugin addedPlugin = // remove plugin only if managedPlugin defines version
+ ( managedPlugin.getVersion() == null ) ? added.get( key ) : added.remove( key );
if ( addedPlugin != null )
{
Plugin plugin = managedPlugin.clone();
@@ -153,6 +172,12 @@ public class DefaultLifecycleBindingsInjector
}
}
}
+
+ if ( !added.isEmpty() )
+ {
+ // some plugins added with default version from bindings
+ context.put( NO_VERSION_PLUGINS, added.values() );
+ }
}
List<Plugin> result = new ArrayList<>( merged.values() );