[
https://issues.apache.org/jira/browse/IVY-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12878981#action_12878981
]
Al commented on IVY-1196:
-------------------------
I've just removed the conf="..." setting from all dependencies, and I actually
still get a maximum resolve depth of 2. This makes me think it's something to
do with the addition of the <conf> definitions in the first place, rather than
the attribute on the dependencies.
> Addition of conf="..." on own-organisation dependencies limits transitive
> resolve depth (and can break IvyDE). Symptoms of various conf="xxx" settings
> detailed
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: IVY-1196
> URL: https://issues.apache.org/jira/browse/IVY-1196
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.0
> Environment: ant+ivy and IvyDE
> Reporter: Al
> Priority: Critical
>
> The issue is that transitivity was infinite before the introduction of the
> conf="..." attribute on internal dependencies. After adding conf="*->*"
> transitivity is limited to a depth of 2. If I use conf="default->default" it
> limits to a depth of 1.
> I'll detail here the conf="*->*" case. Specific issues with other conf
> attributes are detailed afterwards.
> The project environment is as follows: (all projects are internal and not
> third part)
> A -> B
> B -> C
> C -> D
> D -> E
> All projects specify these dependencies as
> <dependency org="myOrg" name="X" revision="SNAPSHOT" transitive="true"
> conf="*->*,!javadoc,!sources" />
> and have
> <configuration>
> <conf name="default" visibility="public" transitive="true" />
> <conf name="test" visibility="public" transitive="true" />
> </configuration>
> NB: 'test' does not extend 'default'. Also, only artifacts for the conf
> 'default' are built and published. I'm trying to sort out issues with the
> 'default' conf before adding 'test' in to the mix... one thing at a time, eh.
> Project E builds and publishes fine, no dependencies.
> Project D builds and publishes fine, and resolves project E.
> Project C builds and publishes fine, and resolves projects D and E
> Project B builds and publishes fine, but resolves only projects C and D.
> IMPORTANT: Project B does NOT actually reference any class in project E.
> Project A fails to build, and resolves only projects B and C. It DOES
> reference a class in project E.
> (For those interested in specifics, project E is a common-utils project, D
> and C are api definitions and projects A and B both contain concrete
> implementations. this means that project E is missing both the common-utils
> project A and also an essential low-level API project B).
> Some other potentially relevant details:
> - All revisions are "SNAPSHOT" and those that publish definitely exist in the
> repository and are the most recent publications. (maven friendly requirements)
> - Cleaning caches has no impact.
> - I have a <module org="myOrg" name="*" resolveMode="dynamic" > entry in my
> settings.xml file.
> - I've added !source and !javadoc for completeness, and don't know if it
> fails without them. If I remove them and leave only conf="*->*" the build
> will fail for lack of the javadoc and source jars. If this is the cause of
> the limited transitivity then I definitely think that's unexpected behaviour!
> Also, see my further tests on various conf settings, which should make it
> clear that the issue persists in other contexts as well.
> I have tried different conf settings on the dependencies. Here's what I get:
> - setting conf="default->default", "*->default" or "default->@" leads to a
> transitive depth of just 1, and expected build errors as a result; classes in
> lower dependencies cannot be resolved
> - setting conf="*->@" or conf="*->#" causes ant+ivy to exhibit the depth=2
> limited transitivity issue and IvyDE to break entirely with claims that
> unused confs in dependencies are "private" when in fact they are public
> (confirmed by ant+ivy treating them as such)
> I can't think of any other things to test.
> Again, the main issue here is that there seems to be a limit on the depth of
> transitive dependency resolution depending on the conf="..." attribute's
> settings. This is unexpected behaviour, so I think qualifies as a bug.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.