You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Florian Schaetz (JIRA)" <ji...@apache.org> on 2016/12/04 14:31:58 UTC
[jira] [Commented] (MNG-5900) early interpolation: support
${this.*} as expression
[ https://issues.apache.org/jira/browse/MNG-5900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15720034#comment-15720034 ]
Florian Schaetz commented on MNG-5900:
--------------------------------------
Personally, I stumbled upon the issue when trying to retrieve the "grandparent" version, since {code}${project.parent.parent.version}{code} doesn't work (anymore?).
Let's assume I have a parent project, let's call it "example-parent" with version "0.0.1-SNAPSHOT". There I set a property...
{code}
<properties>
<example.parent.version>${project.version}</example.parent.version>
</properties>{code}
No surprise there, the effective pom shows me that example-parent has the property example.parent.version=0.0.1-SNAPSHOT
Then I make a new project, let's call it "example-child" which has "example-parent" as a parent. Let's give example-child now version 0.0.2-SNAPSHOT and the effective pom of example-child shows us...
{code}
<properties>
<example.parent.version>0.0.2-SNAPSHOT</example.parent.version>
</properties>{code}
...because the {code}${project.version}{code} now is resolved by calling the example-child's version. And the information that was stored in the property is effectively overwritten.
> early interpolation: support ${this.*} as expression
> ----------------------------------------------------
>
> Key: MNG-5900
> URL: https://issues.apache.org/jira/browse/MNG-5900
> Project: Maven
> Issue Type: New Feature
> Components: Inheritance and Interpolation
> Reporter: Robert Scholte
> Fix For: Issues to be reviewed for 4.x
>
>
> Right now we have $\{project.\*} which always interpolates values based on the final project: "classical" interpolation is "late" interpolation. So it is not possible that parent poms can lock values, ie avoid child poms override. By adding $\{this} for "early" interpolation, it will be possible to have intermediate interpolation.
> If a pomfile depends on a parent, that parent will first resolve all $\{this.\*} values for itself. Once the fully inherited pom is there, all $\{project.\*} will be resolved.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)