Ivy
  1. Ivy
  2. IVY-1313

install task does not allow specification of conf

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0
    • Fix Version/s: 2.3.0-RC1
    • Component/s: Ant
    • Labels:
      None
    • Environment:

      Windows XP

      Description

      When running <ivy:install...> task there is no option to specify which config should be considered. As it is currently, it seems the default conf is the one that is used, therefore if a dependency exists which does not specify a mapping from master default conf, the dependency will not be included during the install. In that case the artifacts installed in the to resolver will not be able to resolve all needed artifacts under some configurations.

      For example, say I had a module defined as in the following example:
      <info organisation="my-org" module="my-module" revision="1.0"/>
      <configurations>
      <conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/>
      [...]
      <conf name="endorsed" visibility="public" description="this scope is used for components/lib/endorsed dependencies."/>
      </configurations>
      <publications>
      <artifact name="my-org" ext="jar"/>
      </publications>
      <dependencies>
      <dependency org="org.apache.xerces" name="xml-apis" rev="2.9.1" conf="endorsed->default"/>
      </dependencies>
      </ivy-module>

      In that case the ant task to install this module from my-resolver to another-resolver would look something like this:
      <ivy:install organisation="my-org" module="my-module" revision="1.0" from="my-resolver" to="another-resolver" transitive="true" overwrite="true"/>
      This task would not install org.apache.xerces#xml-apis;2.9.1 onto another-resolver. As a result, using <ivy:retrieve...conf="endorsed"/> against another-resolver would fail since it would attempt to find dependency org.apache.xerces#xml-apis;2.9.1 which does not exist in the repository (since it was never installed).

      <ivy:install...> should have the option of specifying which configuration(s) should be considered. If not specified then it should default to * meaning all configurations defined in module being configured should be considered when locating which modules should be installed.

      1. IVY-1313.patch
        18 kB
        Nihal Sinha

        Activity

        Hide
        Nihal Sinha added a comment -

        Attaching a patch to fix the issue in question. I've changed the install ant task to allow you to specify a "conf" attribute which can be a single configuration name or a comma-separated list of configuration names to be copied from the source repository to the destination repository with respect to the given module revision info. Also added a few test cases.

        Show
        Nihal Sinha added a comment - Attaching a patch to fix the issue in question. I've changed the install ant task to allow you to specify a "conf" attribute which can be a single configuration name or a comma-separated list of configuration names to be copied from the source repository to the destination repository with respect to the given module revision info. Also added a few test cases.
        Hide
        Maarten Coene added a comment -

        I've applied to patch to SVN trunk.
        Thanks a lot for the contribution!

        Show
        Maarten Coene added a comment - I've applied to patch to SVN trunk. Thanks a lot for the contribution!

          People

          • Assignee:
            Maarten Coene
            Reporter:
            Mike Menu
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development