[ http://jira.codehaus.org/browse/MNG-4715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=251102#action_251102 ]
Chris Price commented on MNG-4715: ---------------------------------- I think there are valid use cases where expressions should be able to be used as version numbers. At least until mix-ins become available, using expressions for version numbers allows us to keep our poms DRY in ways that would be impossible otherwise. For example, we have the following: * A super POM that EVERYTHING inherits from * A "jar" pom that contains settings that we use on our "standard" jars * A "swc" pom that contains settings we use on swcs. We have two projects that we release, let's call them "Project A" and "Project B". Both are multimodule projects and contain both jars and swcs. Right now, we keep version number constants in the super POM, like: <properties> <version.project-a>3.1-SNAPSHOT</version.project-b> <version.project-b>7.3-SNAPSHOT</version.project-b> </properties> Using this pattern, poms from A and B can inherit from the jar/swc parent poms accordingly, and just specify ${version.project-a} for their version number. And there is NOTHING that we have to maintain in more than one place. If we have to have a single "project-a" parent pom that explicitly specifies a version number, then we are going to have to have the jar/swc parent poms inherit from that one, and then have the real modules inside of project a inherit from those. And we'll have to maintain another copy of those jar/swc poms for project b. With mix-ins we should be able to eliminate that redundancy, but until then, we are faced with the choice of using expressions for the version numbers or duplicating all of the content of our jar/swc poms, and the expressions path seems MUCH more manageable. > version expression constant > --------------------------- > > Key: MNG-4715 > URL: http://jira.codehaus.org/browse/MNG-4715 > Project: Maven 2 & 3 > Issue Type: Improvement > Components: Dependencies, POM > Affects Versions: 3.0-alpha-6, 3.0-alpha-7, 3.0-beta-1 > Environment: eclipse linux xp > Reporter: Faruk > Priority: Critical > Fix For: Issues to be reviewed for 3.x > > Attachments: untitled.JPG > > > early versions, we define modules versions with expressions, and set them to > the parent pom, > simply; > <properties> > <ibb-core-cache.version>1.0.1</ibb-core-cache.version> > <ibb-core-util.version>1.0.1</ibb-core-util.version> > </properties> > and then, we give this property to modules pom as expression , > <name>ik-plug</name> > <packaging>jar</packaging> > <version>${ibb-core-util.versionn}</version> > but know , it gives an error you know like this, > "[WARNING] Some problems were encountered while building the effective model > for ibb-parent:ibb-modules-parent:pom:1.0.0 > [WARNING] 'version' contains an expression but should be a constant. @ > ibb-parent:ibb-modules-parent:${ibb-core-jars.version}, > C:\dev\ibb\workspace\core\ibb-modules-parent\pom.xml > " > but I think that, this enhancement is causes wrong result, > think that , if we have i project already developing about 3 years, this > project has a lot of modules, and this modules have sub modules , and this > sub modules already bound to some other modules not define in your pom, but > your updates must be affect them, at this situation, developer want to write > the existing version numbers with properties to parent pom, and want to > manage them like this. at the attach file below , the close projects are > belongs to open projects, but they are the different team developing this. I > cant force the other developers to cache their versions, I must use this > versions as initial step -- 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