Hi,

I’ve create configuration “build_sourceanalyzer” for my module (legacy_lib) 
that should be resolved to sourceanalyzer and for transitive dependencies, but 
somehow ivy resolve to conf="standard, sourceanalyzer(standard)(standard), 
sourceanalyzer, sourceanalyzer(standard)"  for transitive decencies like 
base_lib.
Legacy_lib, pki_asn and base_lib use same configurations and confmapping.

Why ivy (2.4) resolve base_lib configuration to standard? Shouldn’t ivy 
fallback to standard, only if base_lib doesn’t contain sourceanalyzer 
configuration?

Ivy.xml:
<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra";>
    <info module="legacy_lib" organisation="main" e:brand="${brand}" 
branch="${branch}" revision="${version}"/>
    <configurations 
defaultconfmapping="build_sourceanalyzer->sourceanalyzer(standard);%->@(standard)">
        <conf name="build_windows" visibility="private"/>
        <conf name="build_sourceanalyzer" visibility="private" />
        <conf name="standard" />
        <conf name="buildsrv" />
        <conf name="linux" />
        <conf name="sourceanalyzer"  />
        <conf name="full" extends="*(public)" />
    </configurations>

    <publications>
         …
    </publications>

    <dependencies>
        <dependency org="main" name="pki_asn" branch="trunk" 
e:brand="DEFAULT_BRAND" rev="1.6.+" /> <!—depend on base_lib with same 
confmapping -->
      …
        <conflict manager="latest-compatible" />
    </dependencies>
</ivy-module>

Ivy report: https://gist.github.com/KindDragon/0167551a3360f3df17b9

WBR,
Arkady Shapkin

Reply via email to