ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maarten Coene <>
Subject Re: Programmatically resolving dependencies
Date Thu, 15 Oct 2009 21:58:42 GMT
I forgot to tell that if you test the trunk version you should delete your local ivy cache
first because it will still contain an invalid module descriptor for "net.jini#jsk-platform;2.1"


----- Original Message ----
From: Maarten Coene <>
Sent: Thu, October 15, 2009 11:55:25 PM
Subject: Re: Programmatically resolving dependencies

The filter is is called after the resolve process to exclude some artifacts from being downloaded.
In your case, it is the resolve process that fails, so Ivy won't start downloading the artifacts
and won't call your filter.

Btw, I've committed a fix into SVN trunk to make Ivy accept this kind of POMs. Could you please
give it a try and see if your circular dependency error has been fixed?


----- Original Message ----
From: dreedyman <>
Sent: Thu, October 15, 2009 11:47:09 PM
Subject: Re: Programmatically resolving dependencies

Maarten Coene wrote:
> Could you post a JIRA ticket for this circular dependency error, I think
> Ivy shouldn't fail on this if maven accept it.

As a way to keep moving I thought I would create a Filter and avoid the
offending artifacts from being selected. So I created an Exclusion filter,
and set it to the ResolveOptions prior to having the artifact resolved:

def confs = ["default"]
ResolveOptions resolveOptions =
            new ResolveOptions().setConfs(confs as
String[]).setArtifactFilter(new ExclusionFilter())
ResolveReport report = ivy.resolve(ivyFile.toURL(), resolveOptions)

I added some printlns in the ExclusionFilter, but it looks as if the filter
never gets called. Did I add it incorrectly?

Maarten Coene wrote:
> As far as I know, Ivy won't pick up the maven repositories inside the
> pom's, maybe you could open an enhancement request for it as well?

Okay, For now I'll do the parsing myself and add them. Would you recommend
that I add the remote maven repositories as a chain (create a ChainResolver
object), starting with the local maven repository first, then the declared
maven repositories? Then set the chain resolver as the default?

Maarten Coene wrote:
> And to answer your third question: the Ivy cache doesn't has a m2
> repository layout which means that for instance "org.rioproject" will be
> stored in ".ivy2/cache/org.rioproject" instead of
> "ivy2/cache/org/rioproject". I think there is an open feature request for
> this.


Thanks Maarten
View this message in context:
Sent from the ivy-user mailing list archive at


View raw message