Ivy
  1. Ivy
  2. IVY-1041

Ivy doesn't handle the classifier attribute of artifacts inside dependency elements

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 2.1.0-RC1
    • Component/s: Core
    • Labels:
      None
    • Environment:

      Windows vista, Ivy 2.0.0, java 6.0u12

      Description

      It appears that the translation from a Maven POM to an Ivy file is placing the m:classifier attribute on the artifact element rather than the dependency element, where ivy handles it. To reproduce:

      java -jar <path-to>/ivy-2.0.0.jar -settings mule-core-ivy-settings.xml -dependency org.mule mule-core 2.2.0

      The mule-core-ivy-settings.xml file is:

      <?xml version="1.0" encoding="utf-8"?>
      <ivysettings>
       <settings defaultResolver="downloadGrapes" />
       <resolvers>
         <chain name="downloadGrapes">
           <ibiblio name="codehaus" root="http://repository.codehaus.org/" m2compatible="true" />
           <ibiblio name="ibiblio" m2compatible="true" />
           <ibiblio name="java.net2" root="http://download.java.net/maven/2/" m2compatible="true" />
           <ibiblio name="mule-osgi-deps" root="http://dist.codehaus.org/mule/dependencies/maven2" m2compatible="true"/>
         </chain>
       </resolvers>
      </ivysettings>

      The relevant error output isis...

      :: problems summary ::
      :::: WARNINGS
                      module not found: org.safehaus.jug#jug;2.0.0-osgi
      
              ==== codehaus: tried
      
                http://repository.codehaus.org/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.pom
      
                -- artifact org.safehaus.jug#jug;2.0.0-osgi!jug.jar:
      
                http://repository.codehaus.org/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.jar
      
              ==== ibiblio: tried
      
                http://repo1.maven.org/maven2/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.pom
      
                -- artifact org.safehaus.jug#jug;2.0.0-osgi!jug.jar:
      
                http://repo1.maven.org/maven2/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.jar
      
              ==== java.net2: tried
      
                http://download.java.net/maven/2/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.pom
      
                -- artifact org.safehaus.jug#jug;2.0.0-osgi!jug.jar:
      
                http://download.java.net/maven/2/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.jar
      
              ==== mule-osgi-deps: tried
      
                http://dist.codehaus.org/mule/dependencies/maven2/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.pom
      
                -- artifact org.safehaus.jug#jug;2.0.0-osgi!jug.jar:
      
                http://dist.codehaus.org/mule/dependencies/maven2/org/safehaus/jug/jug/2.0.0-osgi/jug-2.0.0-osgi.jar
      
                      ::::::::::::::::::::::::::::::::::::::::::::::
      
                      ::          UNRESOLVED DEPENDENCIES         ::
      
                      ::::::::::::::::::::::::::::::::::::::::::::::
      
                      :: org.safehaus.jug#jug;2.0.0-osgi: not found
      
                      ::::::::::::::::::::::::::::::::::::::::::::::

      In the generated org.mule/mule-core/ivy-2.2.0.xml the following line is generated as

      <dependency org="org.safehaus.jug" name="jug" rev="2.0.0-osgi" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)">
          <artifact name="jug" type="jar" ext="jar" conf="" m:classifier="asl"/>
      </dependency>

      but it works if m:classifier is move to the dependency element:

      <dependency org="org.safehaus.jug" name="jug" rev="2.0.0-osgi" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)" m:classifier="asl">
          <artifact name="jug" type="jar" ext="jar" conf=""/>
      </dependency>

        Activity

        Hide
        Maarten Coene added a comment -

        The location of the generated classifier attribute is correct: it should be at the <artifact > element. However, Ivy seems to ignore this attribute.

        Show
        Maarten Coene added a comment - The location of the generated classifier attribute is correct: it should be at the <artifact > element. However, Ivy seems to ignore this attribute.
        Hide
        Maarten Coene added a comment -

        I think I've fixed it in SVN trunk.
        Could you give it a try?

        thanks,
        Maarten

        Show
        Maarten Coene added a comment - I think I've fixed it in SVN trunk. Could you give it a try? thanks, Maarten
        Hide
        Danno Ferrin added a comment -

        local-build trunk works for me.

        When will this see a release? 2.0.1? 2.1.0? 3.0.0? Any pressing bugs for a patch release?

        Show
        Danno Ferrin added a comment - local-build trunk works for me. When will this see a release? 2.0.1? 2.1.0? 3.0.0? Any pressing bugs for a patch release?
        Hide
        Maarten Coene added a comment -

        I think we can include this fix in the 2.0.1 version.
        We'll create that release as soon as IVY-987 gets fixed.

        Show
        Maarten Coene added a comment - I think we can include this fix in the 2.0.1 version. We'll create that release as soon as IVY-987 gets fixed.

          People

          • Assignee:
            Maarten Coene
            Reporter:
            Danno Ferrin
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development