[ http://jira.codehaus.org/browse/MNGECLIPSE-20?page=comments#action_79316 ] Daniel Schulz commented on MNGECLIPSE-20: -----------------------------------------
quick explanation: i found the reason for the "${pom.version} -> 2.4.1" problem. there is a system property of name "version" set to "2.4.1" in your eclipse jvm (see [Eclipse]->Help->About Eclipse Platform->Configuration Details). more detailed explanation: Some eclipse plugin or component (no names please) set it. it does'nt matter if you set pom.version, project.version, env.version or a property of name version. if a system property of that name ist set, it beats them all, because the pom variable evaluation order is 1) system properties, 2) project properties and at last 3) pom properties via reflection (see org.apache.maven.project.interpolation.RegexBasedModelInterpolator for Details). Try it by calling "mvn -Dversion=2.4.1 install". possible quick fix: I fixed the problem by adding an overloaded RegexBasedModelInterpolator-Implementation to my copy of m2eclipse, that filters out the system property "version" and gets version from POM. (Patch file added). possible not so quick fix: The impl of RegexBasedModelInterpolator should be changed. By using ${pom.version} everyone expects, that an evaluator reads out the version property of the POM. I'll look if there is already an issue for that. BTW and in the future everyone should use ${pom.version}. Using ${version} is dangerous, because it uses a side effect of the RegexBasedModelInterpolator implementation. > using ${version} for subproject dependencies doesn't work (maven uses 2.4.1 > version instead) > -------------------------------------------------------------------------------------------- > > Key: MNGECLIPSE-20 > URL: http://jira.codehaus.org/browse/MNGECLIPSE-20 > Project: Maven 2.x Extension for Eclipse > Issue Type: Bug > Affects Versions: 0.0.3 > Environment: win xp, maven 2.0.1, eclipse plugin 0.0.3, eclipse 3.1 > Reporter: Michal Stochmialek > Assigned To: Eugene Kuleshov > Fix For: 0.0.10 > > Attachments: mvn-multiproject.zip > > > My project is a ear multiproject. It has 5 modules, that have internal > dependencies. For example web module needs app and type modules. > I usually use following declaration for this kind of dependencies. Note that > I'm using ${version} in dependency. In result I'm requesting foo-type jar of > the same version as current project. > <project> > <modelVersion>4.0.0</modelVersion> > <parent> > <groupId>foo</groupId> > <artifactId>foo</artifactId> > <version>0.0.1-SNAPSHOT</version> > </parent> > <artifactId>foo-app</artifactId> > <dependencies> > <dependency> > <groupId>foo</groupId> > <artifactId>foo-type</artifactId> > <version>${version}</version> > </dependency> > </dependencies> > </project> > This works from commandline, but doesn't work in eclipse plugin. I get > following message: > "Unable to download the artifact from any repository foo:foo-type-2.4.1.jar" > Maven (or maven plugin) tries to download foo-type module in very strange > version (instead 0.0.1-SNAPSHOT)! > I've attached simple multimodule project. -- 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