ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard_Senior <>
Subject Re: Publishing...
Date Thu, 24 Mar 2011 23:13:03 GMT

Tim Brown-12 wrote:
> I believe you're confusing the purposes of repositories and caches.
>  Please review the cache concept -

I probably am...
The way I see it a resolver finds a file :
1) and puts it in the cache. 
2) thereafter if that file is in the cache the resolver chain is not called.
But what if I don't want step 2.

I just want the file resolving from one of the resolvers, and caching for
the duration of my build (which spans multiple ant build scripts, each of
which need to find a file

Tim Brown-12 wrote:
> You should _not_ be using  cache as a repository; don't point both a
> resolver and a cache to the same directory structure.  This is called on
> cache
> documentation<>

It might be anti pattern for Ivy, but it is an effective way of doing what I
need doing.
Which is 'resolve and temporarilly cache artifacts during an ongoing build
process spanning several modules'.

I could just put my temporary build modules in a folder in a known structure
during my build.
But what if I want to get my temporary files from cruise? I have to then
write an ant script which first checks the temporary folder to see if the
file is there.. if it isn't go and get it from...... isn't this what Ivy

Tim Brown-12 wrote:
> Selectively killing cache contents sounds useful to me too.

I think so too. That would fix all my problems, as long as I could also
publish to the cache directly rather than waiting for a resolver to find

Tim Brown-12 wrote:
> As for your publishing - each time you publish an artifact, is it a new
> [different] version - or are you always re-publishing with the same
> version?

That's the nub of it really.
During development builds you anticipate that all versions of all files are
You also build all dependant projects in their entirity.

But during your integration build you want to simply integrate known build
numbers, of each module.
Cruise uses the same build targets, only it passes in a build label.

You know when I try to explain this it all sounds so complicated... but what
we're doing is a fairly standard thing that tools like Ivy and Maven were
created to get around I think.
I realise that I'm perhaps mis-purposing ivy through ignorance. But Ivy
could lend itself very neatly to do exactly what I need it to do, if you
could publish to the local cache directly (mot just to resolvers), and
selectively wipe from the local cache.
Ivy seems to assume that artifacts in the local cache are holy, they're not.
Artifacts in the remote repositories are holy.
Ultimately the local cache is just a directory full of files that Ivy
beautifully manages for you. If it could just do it bit more 'management' of
those cached files, it'd be perfect for my needs.
As it is I think I've bent it to my will by simply making a resolver that
points to one of my caches.
View this message in context:
Sent from the ivy-user mailing list archive at

View raw message