You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2016/09/14 13:34:13 UTC

maven git commit: [MNG-5971] Imported dependencies should be available to inheritance processing

Repository: maven
Updated Branches:
  refs/heads/master 38300cf28 -> a2d2bbb86


[MNG-5971] Imported dependencies should be available to inheritance processing

o Updated the model problem message about conflicting dependency management
  declarations to be less verbose as requested by Stephane Nicoll on dev@.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/a2d2bbb8
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/a2d2bbb8
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/a2d2bbb8

Branch: refs/heads/master
Commit: a2d2bbb86bac94a890785a8d9410dd47db10385f
Parents: 38300cf
Author: Christian Schulte <sc...@apache.org>
Authored: Wed Sep 14 15:31:33 2016 +0200
Committer: Christian Schulte <sc...@apache.org>
Committed: Wed Sep 14 15:31:33 2016 +0200

----------------------------------------------------------------------
 .../DefaultDependencyManagementImporter.java    | 30 ++++++++++++++------
 1 file changed, 22 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/a2d2bbb8/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java b/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
index c3a0201..ad5513d 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
@@ -27,6 +27,8 @@ import java.util.Map;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
+import org.apache.maven.model.InputLocation;
+import org.apache.maven.model.InputSource;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblem;
@@ -100,7 +102,17 @@ public class DefaultDependencyManagementImporter
 
                     for ( final Dependency dependency : conflictingDependencies )
                     {
-                        conflictsBuilder.append( ", '" ).append( dependency.getLocation( "" ) ).append( '\'' );
+                        final InputLocation location = dependency.getLocation( "" );
+
+                        if ( location != null )
+                        {
+                            final InputSource inputSource = location.getSource();
+
+                            if ( inputSource != null )
+                            {
+                                conflictsBuilder.append( ", '" ).append( inputSource.getModelId() ).append( '\'' );
+                            }
+                        }
                     }
 
                     problems.add( new ModelProblemCollectorRequest(
@@ -108,17 +120,19 @@ public class DefaultDependencyManagementImporter
                                            ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_5 ),
                         ModelProblem.Version.V20 ).
                         setMessage( String.format(
-                            "Multiple conflicting imports of dependency '%1$s' into model '%2$s'%3$s(%4$s). "
-                                + "To resolve this conflict, either declare the dependency directly "
-                                + "in the dependency management of model '%2$s' to override what gets imported "
-                                + "or, as of model version 4.1.0, rearrange the causing imports in the inheritance "
-                                + "hierarchy to apply standard override logic based on artifact coordinates. "
-                                + "Without resolving this conflict, your build relies on indeterministic "
+                            "Dependency '%1$s' has conflicting dependency management in model '%2$s'%3$s%4$s. "
+                                + "To resolve the conflicts, either declare the dependency management for dependency "
+                                + "'%1$s' directly in the dependency management of model '%2$s' to override what gets "
+                                + "imported or - as of model version 4.1.0 - rearrange the causing imports in the "
+                                + "inheritance hierarchy to apply standard override logic based on artifact "
+                                + "coordinates. Without resolving the conflicts, your build relies on indeterministic "
                                 + "behaviour.",
                             conflictingDependencies.get( 0 ).getManagementKey(), target.getId(),
                             target.getPomFile() != null
                                 ? " @ '" + target.getPomFile().getAbsolutePath() + "' "
-                                : " ", conflictsBuilder.substring( 2 ) ) ) );
+                                : " ", conflictsBuilder.length() > 0
+                                           ? "(" + conflictsBuilder.substring( 2 ) + ")"
+                                           : "" ) ) );
 
                 }
             }