ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard_Senior <>
Subject Re: Publishing...
Date Wed, 23 Mar 2011 23:29:14 GMT

Tim Brown-12 wrote:
> Can you elaborate on your process here? Is your goal to publish them
> locally
> and then reference the resulting binary instead of project references?

Hmm now I come to try I find it difficult and I think I now know why....

Essentially when the build runs in cruisecontrol I want it to find any
dependant artifacts of our making, from other cruisecontrol projects and put
them in the local cache. But to force cruise to do the same every build I
want it to wipe these artifacts before every build. To ensure that cruise
doesn't build with stale artifacts.
But when it's building in our eclipse development environment I want it to
build from scratch every time and replace whatever is in the local cache
every time.

I can create resolvers that find artifacts in cruise, or in the local
eclipse workspace.
But once found, no matter where from, it will be put in the local
repository, and there it will remain, build after build.

This means that the second time the cruise build runs, it will find the
artifacts it needs in the local repository, and not bother going to get them

My idea was to have two caches, one which gets wiped at the beginning of
every cruise build.

Tim Brown-12 wrote:
> Why not use IvyDE and not the local repo?
> I've done what you're describing in the past.  My approach was to have a
> common layout for my repository, then define two resolvers - one for local
> [private], one for the shared repo, and then use a resolver chain to tie
> them together.

Yes.. this I can do this. but if what I'm missing is this.
I have one 'cache' and many 'resolvers'.
I can publish to a resolver, but the next time ivy runs it will find the
objects in that resolver and put them in the 'cache'. There after it will
find them in the 'cache'. 

Tim Brown-12 wrote:
> What's your motivation for purging modules from the main [shared] repo?
>  Wouldn't you want to treat a build,tested, and published binary as
> immutable?
> We use a bash script to purge modules from the repo when they're deleted
> from source control (to prevent accidentally depending on a ghost), but we
> normally don't trash or rebuild modules in the repo for other purposes.

Well my thought is that I need a permanent cache for the third party
But I need a cache that only lasts as long as the build, to temporarilly
store modules of our own making.
This is because our modules are not finalized yet and their content keeps
changing. So I need to ensure they're got afresh every build. And when
running on cruisecontrol they can't be found in the workspace, they have to
be found from the respective cruisecontrol projects. But when running in the
dev machine they need to be found locally, and not from cruise!

But I don't really understand why Ivy publishes to 'resolvers' and not
Can I stipulate what 'cache' a dependancy goes into? Because if I can this
can be solved that way.

Yes I did consider just wiping selected parts of my local cache
programatically by writing an ant task to do it. But surely Ivy have thought
of a solution to my problem that I just don't know about.
View this message in context:
Sent from the ivy-user mailing list archive at

View raw message