maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Florian Schaetz (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MNG-5900) early interpolation: support ${this.*} as expression
Date Sun, 04 Dec 2016 14:31:58 GMT

    [ 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)

Mime
View raw message