Description
When modules that uses the same dependencies with different configuration(or different includes) then only the first module that is resolved gets the artifacts that it specifies. The other gets what was last resolved.
Module A that uses module B.
Module B uses a build configuration of module C
Module A uses a build configuration of module C and a runtime configuration
of module B
Module B downloads explicit jars from C depending on configuration.
When I resolve A in build configuration I only get the explicit defined
runtime jars that B defines for module C.
Here are snippets of the ivy files.
Module A:
...
<dependencies>
<dependency org="myorg" name="B" rev="1.6" conf="build->runtime" />
<dependency org="myorg" name="C" rev="1.10" conf="build,runtime->default"
/>
</dependencies>
...
Module B
...
<configurations>
<conf name="build" visibility="private"/>
<conf name="runtime"/>
</configurations>
<dependencies>
<dependency org="myorg" name="C" rev="1.10" conf="build,runtime->default">
<artifact name="art1" type="jar" conf="runtime"/>
<artifact name="art2" type="jar" conf="runtime"/>
<artifact name="art3" type="jar" conf="runtime"/>
</dependency>
</dependencies>
...
Module C
...
<publications>
<artifact name="art1" type="jar" conf="default"/>
<artifact name="art2" type="jar" conf="default"/>
<artifact name="art3" type="jar" conf="default"/>
<artifact name="art4" type="jar" conf="default"/>
</publications>
...
If module A had explicitly added the artifacts that it needed for module C it would have worked fine. The way it should work is that if no specific artifacts are included, the all artifacts for the given configuration should have been included.