[ 
https://jira.codehaus.org/browse/MNG-624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=336980#comment-336980
 ] 

Adrian Shum commented on MNG-624:
---------------------------------

For all suggestion/workaround proposed here using a property for parent 
version, they all suffer from one issue: This will work for build, but will 
fail on using the result as dependency.

Assuming I have a very simple structure like this:
{code}
foo-parent
foo-lib
{code}
assume the POm of foo-lib contains

{code}
    <parent>
        <groupId>foo</groupId>
        <artifactId>foo-parent</artifactId>
        <version>${foo.version}</version>
        <relativePath>../foo-parent/pom.xml</relativePath>
    </parent>
{code}

(foo.version can be provided by any means, by command line or by property 
defined in parent etc)

Because Maven is deploying/installing the POM as-is.  That means, if I put 
foo-lib in the repository, when people is using it as dependency, the POM is 
containing only ${foo.version} string literal as the parent version.  There is 
no way that it can resolve the correct parent POM to refer to.

May I suggests, instead of deploying the POM as-is, we are creating an 
"effective" POM to use to deploy? In the "effective" POM, we have all necessary 
properties replaced and use that for install/deploy.  
                
> automatic parent versioning
> ---------------------------
>
>                 Key: MNG-624
>                 URL: https://jira.codehaus.org/browse/MNG-624
>             Project: Maven 2 & 3
>          Issue Type: Improvement
>          Components: Inheritance and Interpolation
>            Reporter: Brett Porter
>            Assignee: Ralph Goers
>            Priority: Blocker
>             Fix For: 3.2
>
>         Attachments: MNG-624-maven-2.0.x-r507648.patch, MNG-624-tests.tar.gz
>
>   Original Estimate: 4 hours
>  Remaining Estimate: 4 hours
>
> (this may be bumped to 2.1 or even made WON't FIX as it is contentious - see 
> MNG-521)
> currently, you have to specify the parent version when extending which makes 
> a project stand alone very easily, but has the drawback of being a 
> maintainance problem when you start development on a new version. Tools can 
> help, but it would be nice not to have to rely on them.
> One alternative is to allow the parent version to be omitted, and when it is 
> it is assumed you want the latest. The parent is used from the reactor or the 
> universal source directory. IT may also be read from a LATEST in the 
> repository though this is contentious - it may be better to simply fail in 
> that environment and require builds be in a known checkout structure for 
> building individual projects.
> This also introduces the need for tool support to populate the version on 
> release and deployment for reproducibility.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to