You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Shawn Castrianni <Sh...@halliburton.com> on 2008/11/10 10:53:20 UTC

problems with partial dependency and eviction

I am using my own build of ivy at revision 675585 and am having problems when I use the <include> sub tag for a dependency so that I can restrict the dependency to just part of the module.

For example, A->B (part1.jar only).  So I use an <include> tag to only include the part1.jar in the dependency definition.  Now let's say I have C which depends on A and all of B.  Since A is only going to grab part1.jar only, I have to make C be directly dependent on B so that I it can get all of B.  This makes sense.  However, IVY (in its resolve to only get part1.jar of B via A) is preventing the rest of B from coming through when resolving C->B.  It evicts the rest of B.

This seems like a bug to me since I would think direct dependencies should overrule indirect dependencies.  Is this a bug and will the latest release candidate of IVY solve this problem?  Or am I doing something wrong?  Please help.

---
Shawn Castrianni

----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient.  Any review, use, distribution, or disclosure by others is strictly prohibited.  If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message.

Re: problems with partial dependency and eviction

Posted by Mitch Gitman <mg...@gmail.com>.
Shawn, forgive me for steering you in another direction. Rather than mess
around with dependency/include--if I control the dependency itself--I would
find it simpler, both practically and conceptually, to create two different
configurations of the dependency:

   - One whose publication is part1.jar, in your case. Call this partial.
   - Another whose publication is everything else. Call this everything.

Then your A project can specify something like conf="default->partial" in
its dependency element.

Setting aside the possible bug you describe, what's confusing about
specifying dependency/include is that it implies that the dependent project
is messing around inside the configuration for the dependency project. The
consumer component is consuming implementation in addition to interface.

On Mon, Nov 10, 2008 at 1:53 AM, Shawn Castrianni <
Shawn.Castrianni@halliburton.com> wrote:

> I am using my own build of ivy at revision 675585 and am having problems
> when I use the <include> sub tag for a dependency so that I can restrict the
> dependency to just part of the module.
>
> For example, A->B (part1.jar only).  So I use an <include> tag to only
> include the part1.jar in the dependency definition.  Now let's say I have C
> which depends on A and all of B.  Since A is only going to grab part1.jar
> only, I have to make C be directly dependent on B so that I it can get all
> of B.  This makes sense.  However, IVY (in its resolve to only get part1.jar
> of B via A) is preventing the rest of B from coming through when resolving
> C->B.  It evicts the rest of B.
>
> This seems like a bug to me since I would think direct dependencies should
> overrule indirect dependencies.  Is this a bug and will the latest release
> candidate of IVY solve this problem?  Or am I doing something wrong?  Please
> help.
>
> ---
> Shawn Castrianni
>
> ----------------------------------------------------------------------
> This e-mail, including any attached files, may contain confidential and
> privileged information for the sole use of the intended recipient.  Any
> review, use, distribution, or disclosure by others is strictly prohibited.
>  If you are not the intended recipient (or authorized to receive information
> for the intended recipient), please contact the sender by reply e-mail and
> delete all copies of this message.