I use Ivy programmatically (in the context of SBT), and I need to be able to transitively replace a small set of modules with a compatible set that has a different organization, but the names of artifacts, changes, etc.
To indicate a specific example, I want to replace
org.scala-lang#scala-reflect;2.11.8
with,
org.typelevel#scala-reflect;2.11.8
everywhere in the dependency graph. Note that I only want to add a dependency on org.typelevel # scala -reflect; 2.11.8 if there is a dependency on org.scala-lang # scala -reflect; 2.11.8 somewhere in the graph (which I do not know in advance), so this is not enough to unconditionally exclude the org.scala-lang module and enable org.typelevel one.
Is it possible? If so, pointers to the necessary mechanism will be very happy. If this is not the case, suggestions for workarounds will also be very welcome.
source share