You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Barrie Treloar (JIRA)" <ji...@codehaus.org> on 2011/09/22 08:17:17 UTC

[jira] Closed: (MECLIPSE-665) wrong classpath order generated in .classpath file for transitive dependencies

     [ https://jira.codehaus.org/browse/MECLIPSE-665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Barrie Treloar closed MECLIPSE-665.
-----------------------------------

       Resolution: Duplicate
    Fix Version/s: 2.9
         Assignee: Barrie Treloar

> wrong classpath order generated in .classpath file for transitive dependencies
> ------------------------------------------------------------------------------
>
>                 Key: MECLIPSE-665
>                 URL: https://jira.codehaus.org/browse/MECLIPSE-665
>             Project: Maven 2.x Eclipse Plugin
>          Issue Type: Bug
>          Components: Core : Dependencies resolution and build path (.classpath)
>    Affects Versions: 2.8
>         Environment: - OS : windows XP 2002 SP3
> - java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
> - Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
> Java version: 1.6.0_20
> Java home: C:\homeware\java\jdk1.6.0_20\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
> - Eclipse SDK
> Version: 3.6.0
> Build id: I20100608-0911
> - maven-eclipse-plugin v2.8
>            Reporter: Bruno DOOLAEGHE
>            Assignee: Barrie Treloar
>             Fix For: 2.9
>
>         Attachments: demo-classpath-order.zip, maven-eclipse-plugin_patch_to_2.8.1.zip
>
>
> Hi !
> It seems the generated ".classpath" file has a transitive dependencies order different from the one defined in the pom.xml.
> In ".classpath", the transitive dependencies are before the refering dependency, while in maven build, they are correctly after. 
> This is particulary a problem with the "patch jars", containing a small fix for one class, which is supposed to be just before the original bugged jar in the classpath.
> I have attached a sample illustrating the problem (demo-classpath-order.zip).
> There is a client module (my-client), using a dependency (my-dependency), which has been patched (my-patched-dependency)
> my-client depends on my-patched-dependency which depends on my-dependency
> my-client is successfully build with maven (mvn clean install). The dependency tree is as follows :
> [INFO] ------------------------------------------------------------------------
> [INFO] [dependency:tree {execution: default-cli}]
> [INFO] sample:my-client:jar:1.0-SNAPSHOT
> [INFO] \- dependencies:my-patched-dependency:jar:1.0-SNAPSHOT:compile
> [INFO]    \- dependencies:my-dependency:jar:1.0-SNAPSHOT:compile
> [INFO] ------------------------------------------------------------------------
> But if you try to build under eclipse :
> 1) mvn eclipse:eclipse to generate .classpath and .project
> - > clean under eclipse + build all
> ... There is an error "The method m2() is undefined for the type MyService"
> We can see the classpath in .classpath is inverted : 
> <classpath>
>   <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
>   <classpathentry kind="output" path="target/classes"/>
>   <classpathentry kind="var" path="M2_REPO/dependencies/my-dependency/1.0-SNAPSHOT/my-dependency-1.0-SNAPSHOT.jar"/>
>   <classpathentry kind="var" path="M2_REPO/dependencies/my-patched-dependency/1.0-SNAPSHOT/my-patched-dependency-1.0-SNAPSHOT.jar"/>
>   <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> </classpath>
> my-dependency is before my-patched-dependency ! that's the reason why eclipse can not build it...
> I tried to fix the maven-eclipse-plugin, to reverse the order (cf. attached file maven-eclipse-plugin_patch_to_2.8.1.zip). It fixes the problem (but what about the side effect ?)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira