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 <[email protected]>
Authored: Thu Jun 9 10:03:00 2016 +0200
Committer: Christian Schulte <[email protected]>
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 );