Ivy
  1. Ivy
  2. IVY-899

POM packaging not always mapped to main artifact file extension correctly

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.0.0-beta-2
    • Fix Version/s: None
    • Component/s: Maven Compatibility
    • Labels:
      None

      Description

      POM files contain a packaging element that Ivy attempts to map to an extension for the main artifact of the module in question. In 2.0.0beta2, it maps as follows:

      ejb->jar
      bundle->jar only for org.apache.felix#maven-bundle-plugin
      [other]->[other]

      That mapping is not sufficient to cover common POM files. For a start:

      1. maven-plugin is a standard packaging type, which should map to the extension jar.

      • e.g. Ivy erroneously searches for
        org.apache.axis2#axis2-ant-plugin;1.4.1!axis2-ant-plugin.maven-plugin
        rather than:
        org.apache.axis2#axis2-ant-plugin;1.4.1!axis2-ant-plugin.jar
        2. bundle seems to be used by various things, and is a jar in the cases I've seen:
        org.apache.geronimo.specs#geronimo-activation_1.1_spec;1.0.1!geronimo-activation_1.1_spec.bundle
        should be
        org.apache.geronimo.specs#geronimo-activation_1.1_spec;1.0.1!geronimo-activation_1.1_spec.jar

      Also, apparently POMs can have custom packaging which might need to map to some other arbitrary file extension, or possibly potentially to multiple files?

      The ideal solution is to provide customisable mapping of POM packaging to file extensions that can be specified somewhere in the Ivy settings (it is somewhat similar to namespaces).

      An interim solution is to change the mapping as follows:

      ejb->jar
      ejb[N]>jar?? e.g. ejb3>jar
      maven-plugin->jar
      bundle->jar if and only if .bundle does not exist but .jar does (it may not be easy to check for file existence in the relevant code - I'd be happy to always map bundle to jar, but others might not be - might be fine for an interim solution though?).
      [other]->[other]

      The interim solution could perhaps be done for 2.0 (it is only a few minutes work I think), though the properly customisable solution might take longer than that.

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Tom Widmer
          • Votes:
            8 Vote for this issue
            Watchers:
            13 Start watching this issue

            Dates

            • Created:
              Updated:

              Development