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 ) + ")"
+ : "" ) ) );
}
}