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/06/09 08:16:29 UTC
maven git commit: [MNG-5971] Imported dependencies should be
available to inheritance processing
Repository: maven
Updated Branches:
refs/heads/master b2a8aaded -> a6d52372a
[MNG-5971] Imported dependencies should be available to inheritance processing
o Updated to support inherited ${project.groupId} and ${project.version} expressions
in dependency management import declarations.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/a6d52372
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/a6d52372
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/a6d52372
Branch: refs/heads/master
Commit: a6d52372afddb56a5ca6cc1ef095c32f622eddb6
Parents: b2a8aad
Author: Christian Schulte <sc...@apache.org>
Authored: Thu Jun 9 10:03:00 2016 +0200
Committer: Christian Schulte <sc...@apache.org>
Committed: Thu Jun 9 10:03:00 2016 +0200
----------------------------------------------------------------------
.../maven/model/building/DefaultModelBuilder.java | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/a6d52372/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index df9d2bd..014e401 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -755,8 +755,10 @@ public class DefaultModelBuilder
final DefaultModelProblemCollector problems )
{
// [MNG-5971] Imported dependencies should be available to inheritance processing
+ // It's not possible to support all ${project.xyz} properties in dependency management import declarations
+ // because import processing is performed before the final inheritance processing is performed. So the set of
+ // ${project.xyz} properties supported in dependency management import declarations is limited.
- // Creates an intermediate model with only property and repository inheritance.
final List<Model> intermediateLineage = new ArrayList<>( lineage.size() );
for ( int i = 0, s0 = lineage.size(); i < s0; i++ )
@@ -769,6 +771,17 @@ public class DefaultModelBuilder
final Model parent = intermediateLineage.get( i + 1 );
final Model child = intermediateLineage.get( i );
+ if ( child.getGroupId() == null )
+ {
+ // Support ${project.groupId} in dependency management import declarations.
+ child.setGroupId( parent.getGroupId() );
+ }
+ if ( child.getVersion() == null )
+ {
+ // Support ${project.version} in dependency management import declarations.
+ child.setVersion( parent.getVersion() );
+ }
+
final Properties properties = new Properties();
properties.putAll( parent.getProperties() );
properties.putAll( child.getProperties() );
@@ -838,7 +851,7 @@ public class DefaultModelBuilder
}
// Imports dependencies into the original model using the repositories of the intermediate model.
- for ( int i = 0, s0 = lineage.size(), superModelIdx = lineage.size() - 1; i < s0; i++ )
+ for ( int i = 0, s0 = lineage.size(); i < s0; i++ )
{
final Model model = lineage.get( i );
this.configureResolver( lenientRequest.getModelResolver(), intermediateLineage.get( i ), problems, true );