Skip to content

updateClassifiers does not respect Ivy configuration mappings #2264

@brunon

Description

@brunon

When a dependency uses non-standard configurations, and does not have a "compile" configuration, it is possible to include it in libraryDependencies using a configuration mapping like this

libraryDependencies += "ossjava" % "freemarker" % "2.3.19" % "compile->runtime"

(This is a private library available on a filesystem resolver, so don't look for it on the Web)

This makes the "update" task work. However, "updateClassifiers" does not seem to detect the Ivy configuration mapping and still looks for "compile" and fails

This is the ivy.xml that is looked up by the filesystem resolver, you'll notice it has only "runtime" nothing else

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:extra="http://ant.apache.org/ivy/extra">

  <info organisation="ossjava" module="freemarker" revision="2.3.19">
  </info>

  <configurations>
    <conf name="runtime" description="Core runtime dependencies"/>
  </configurations>

  <publications>
    <artifact name="freemarker-2.3.19" type="src" ext="src.jar" conf="runtime"/>
    <artifact name="freemarker-2.3.19" type="jar" ext="jar" conf="runtime"/>
  </publications>

  <dependencies/>

</ivy-module>

Finally, this is the message that SBT provides:

[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: ossjava#freemarker;2.3.19: configuration not found in ossjava#freemarker;2.3.19: 'default(compile)'. Missing configuration: 'compile'. It was required from default#a$sources_javadoc_2.10;0.1-SNAPSHOT test-internal
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

More debug output:

> last-grep freemarker
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile->default(compile)]
[info] Resolving ossjava#freemarker;2.3.19 ...
[debug] sbt-chain: module revision found in cache: ossjava#freemarker;2.3.19
[debug]         found ossjava#freemarker;2.3.19 in sbt-chain
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [runtime->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [runtime->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [test->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile-internal->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [runtime->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [runtime-internal->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [compile->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [runtime->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [test->default(compile)]
[debug] == resolving dependencies default#a$sources_javadoc_2.10;0.1-SNAPSHOT->ossjava#freemarker;2.3.19 [test-internal->default(compile)]
[warn]  :: ossjava#freemarker;2.3.19: configuration not found in ossjava#freemarker;2.3.19: 'default(compile)'. Missing configuration: 'compile'. It was required from default#a$sources_javadoc_2.10;0.1-SNAPSHOT test-internal

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions