Uploaded image for project: 'Maven Dependency Plugin'
  1. Maven Dependency Plugin
  2. MDEP-251

Artifacts qualifier are NOT taken into accounts correctly

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Incomplete
    • Affects Version/s: 2.1
    • Fix Version/s: None
    • Component/s: tree
    • Labels:
      None
    • Environment:
      OSX 10.6.2, java 1.6.0_17

      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:

      [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

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jseurin Jean Seurin

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment