Tim Brown-12 wrote: > > I believe you're confusing the purposes of repositories and caches. > Please review the cache concept - > http://ant.apache.org/ivy/history/latest-milestone/concept.html#cache >
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<http://ant.apache.org/ivy/history/latest-milestone/settings/caches.html> > 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 does? 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 them. 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 new. 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: http://old.nabble.com/Publishing...-tp31221641p31233819.html Sent from the ivy-user mailing list archive at Nabble.com.
