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 again. 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 artifacts. 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 'caches'. 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: http://old.nabble.com/Publishing...-tp31221641p31224896.html Sent from the ivy-user mailing list archive at Nabble.com.
