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

Herve Boutemy updated MDEP-251:
-------------------------------

    Description: 
I just introduced some qualifier for some libs that require to be compiled in 
java5.
I've been very confused when realizing that when packaging a webapp depending 
on those qualified artifacts, the non qualified versions are included instead.

It seems to come from dependency plugin.

Here is what happens:

When I do a dependency:tree on an artifact that depends directly on qualified 
libs, I get something regular:

{noformat}[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.company.project:stageof:jar:1.4-SNAPSHOT
[INFO] +- org.company.project:jar:jdk1.5:1.5-SNAPSHOT:compile
....
[INFO] +- 
org.company.commons:commons-xml:jar:jdk1.5:1.4-SNAPSHOT:compile{noformat}

The stageof lib depends on the jdk1.5 qualified commons and commons-xml libs.

When I do a dependency:tree on an upper level webapp that depends on this 
stageof lib:

{noformat}[INFO] org.company.project:webapp:war:1.13-SNAPSHOT
[INFO] +- org.company.project:stageof:jar:jdk1.5:1.4-SNAPSHOT:compile
[INFO] |  +- org.company.commons:jar:1.4.0:compile
[INFO] |  \- org.company.commons:commons-xml:jar:1.4-SNAPSHOT:compile
[INFO] +- org.company.commons:jar:jdk1.5:1.5-SNAPSHOT:compile
...{noformat}

it finds correctly the qualified version of stageof, but include non qualified 
commons and commons-xml.

These unqualified versions are the dependencies of the also non qualified 
stageof-1.4-SNAPSHOT.

>From this behavior, I presume dependency plugin makes a mistake in looking 
>from the wrong pom, probably not using the qualifier of the included 
>dependency:

{code:xml}        <dependency>
            <groupId>org.company.project</groupId>
            <artifactId>stageof</artifactId>
            <version>1.4-SNAPSHOT</version>
            <scope>compile</scope>
            <classifier>jdk1.5</classifier>
        </dependency>{code}

Hope this is clear.
I could provide an example if you can't reproduce easily.
Actually, just adding a qualifier to the jar-plugin to produce the artifact and 
to the <dependency> section should do the job.

rgds,
jean

  was:
I just introduced some qualifier for some libs that require to be compiled in 
java5.
I've been very confused when realizing that when packaging a webapp depending 
on those qualified artifacts, the non qualified versions are included instead.

It seems to come from dependency plugin.

Here is what happens:

When I do a dependency:tree on an artifact that depends directly on qualified 
libs, I get something regular:

[INFO] [dependency:tree {execution: default-cli}]
[INFO] org.company.project:stageof:jar:1.4-SNAPSHOT
[INFO] +- org.company.project:jar:jdk1.5:1.5-SNAPSHOT:compile
....
[INFO] +- org.company.commons:commons-xml:jar:jdk1.5:1.4-SNAPSHOT:compile

The stageof lib depends on the jdk1.5 qualified commons and commons-xml libs.

When I do a dependency:tree on an upper level webapp that depends on this 
stageof lib:

[INFO] org.company.project:webapp:war:1.13-SNAPSHOT
[INFO] +- org.company.project:stageof:jar:jdk1.5:1.4-SNAPSHOT:compile
[INFO] |  +- org.company.commons:jar:1.4.0:compile
[INFO] |  \- org.company.commons:commons-xml:jar:1.4-SNAPSHOT:compile
[INFO] +- org.company.commons:jar:jdk1.5:1.5-SNAPSHOT:compile
...

it finds correctly the qualified version of stageof, but include non qualified 
commons and commons-xml.

These unqualified versions are the dependencies of the also non qualified 
stageof-1.4-SNAPSHOT.

>From this behavior, I presume dependency plugin makes a mistake in looking 
>from the wrong pom, probably not using the qualifier of the included 
>dependency:

        <dependency>
            <groupId>org.company.project</groupId>
            <artifactId>stageof</artifactId>
            <version>1.4-SNAPSHOT</version>
            <scope>compile</scope>
            <classifier>jdk1.5</classifier>
        </dependency>

Hope this is clear.
I could provide an example if you can't reproduce easily.
Actually, just adding a qualifier to the jar-plugin to produce the artifact and 
to the <dependency> section should do the job.

rgds,
jean

    
> Artifacts qualifier are NOT taken into accounts correctly
> ---------------------------------------------------------
>
>                 Key: MDEP-251
>                 URL: https://jira.codehaus.org/browse/MDEP-251
>             Project: Maven 2.x Dependency Plugin
>          Issue Type: Bug
>          Components: tree
>    Affects Versions: 2.1
>         Environment: OSX 10.6.2, java 1.6.0_17
>            Reporter: Jean Seurin
>            Assignee: Brian Fox
>            Priority: Critical
>         Attachments: test.maven-dependency-plugin.zip
>
>
> I just introduced some qualifier for some libs that require to be compiled in 
> java5.
> I've been very confused when realizing that when packaging a webapp depending 
> on those qualified artifacts, the non qualified versions are included instead.
> It seems to come from dependency plugin.
> Here is what happens:
> When I do a dependency:tree on an artifact that depends directly on qualified 
> libs, I get something regular:
> {noformat}[INFO] [dependency:tree {execution: default-cli}]
> [INFO] org.company.project:stageof:jar:1.4-SNAPSHOT
> [INFO] +- org.company.project:jar:jdk1.5:1.5-SNAPSHOT:compile
> ....
> [INFO] +- 
> org.company.commons:commons-xml:jar:jdk1.5:1.4-SNAPSHOT:compile{noformat}
> The stageof lib depends on the jdk1.5 qualified commons and commons-xml libs.
> When I do a dependency:tree on an upper level webapp that depends on this 
> stageof lib:
> {noformat}[INFO] org.company.project:webapp:war:1.13-SNAPSHOT
> [INFO] +- org.company.project:stageof:jar:jdk1.5:1.4-SNAPSHOT:compile
> [INFO] |  +- org.company.commons:jar:1.4.0:compile
> [INFO] |  \- org.company.commons:commons-xml:jar:1.4-SNAPSHOT:compile
> [INFO] +- org.company.commons:jar:jdk1.5:1.5-SNAPSHOT:compile
> ...{noformat}
> it finds correctly the qualified version of stageof, but include non 
> qualified commons and commons-xml.
> These unqualified versions are the dependencies of the also non qualified 
> stageof-1.4-SNAPSHOT.
> From this behavior, I presume dependency plugin makes a mistake in looking 
> from the wrong pom, probably not using the qualifier of the included 
> dependency:
> {code:xml}        <dependency>
>             <groupId>org.company.project</groupId>
>             <artifactId>stageof</artifactId>
>             <version>1.4-SNAPSHOT</version>
>             <scope>compile</scope>
>             <classifier>jdk1.5</classifier>
>         </dependency>{code}
> Hope this is clear.
> I could provide an example if you can't reproduce easily.
> Actually, just adding a qualifier to the jar-plugin to produce the artifact 
> and to the <dependency> section should do the job.
> rgds,
> jean

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to