[
http://jira.codehaus.org/browse/MNG-624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=210447#action_210447
]
Abhishekh Padmanbhan commented on MNG-624:
------------------------------------------
I think I might have a workaround/solution to this problem using a profiles.xml
(MAVEN 2.1.0) in the root project that holds the project current version as a
property. This property then can be used as a value to the version in the
parent tag definition in all its sub modules.
Find below the workaround that I use to propagate the project version variable
as a property to all of the project submodule. By doing this I avoid having to
redefine the project parent pom version in all its submodules.
*PROJECT STRUCTURE (all caps are modules)*
ROOT
- pom.xml
- profiles.xml
- WAR
-- pom.xml
- EJB
-- pom.xml
*ROOT/profiles.xml*
{noformat}
<profilesXml>
<profiles>
<profile>
<id>projectProfile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<currentVersion>1.0.1</currentVersion>
</properties>
</profile>
</profiles>
</profilesXml>
{noformat}
*ROOT/pom.xml*
{noformat}
<project>
<groupId>projGrp</groupId>
<artifactId>rootProjName</artifactId>
<version>${currentVersion}</version>
</project>
{noformat}
*ROOT/EJB/pom.xml*
{noformat}
<project>
<artifactId>ejbProjName</artifactId>
<packaging>ejb</packaging>
<parent>
<groupId>projGrp</groupId>
<artifactId>rootProjName</artifactId>
<version>${currentVersion}</version>
</parent>
</project>
{noformat}
I think this way the project version is a property just in one file
profiles.xml in the ROOT project and will be the only file that changes when
the version changes.
I have not tested this exhaustively but seems to work in principle.
> automatic parent versioning
> ---------------------------
>
> Key: MNG-624
> URL: http://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.1
>
> 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 contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira