[ 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

        

Reply via email to