To support offline build,  I use some dedicated resolver chains.  It looks
like this :


        <cache name="cache">
                <ivy
pattern="${ivy.cache.dir}/${ivy.cache.default.ivy.pattern}" />
                <artifact
pattern="${ivy.cache.dir}/${ivy.cache.default.artifact.pattern}" />
        </cache>
        <filesystem name="local">
                <ivy
pattern="${ivy.local.dir}/${ivy.local.default.ivy.pattern}" />
                <artifact
pattern="${ivy.local.dir}/${ivy.local.default.artifact.pattern}" />
        </filesystem>
        <filesystem name="shared">
                <ivy
pattern="${ivy.share.dir}/${ivy.shared.default.ivy.pattern}" />
                <artifact
pattern="${ivy.share.dir}/${ivy.shared.default.artifact.pattern}" />
        </filesystem>
        <chain name="offline" returnFirst="true">
                <resolver ref="local"/>
                <resolver ref="cache"/>
        </chain>        
        <chain name="online" returnFirst="true">
                <resolver ref="local"/>
                <resolver ref="shared"/>
        </chain>


And my default conf is online or offline according to some ant variable.


NB: I think cache still requires a <typedef name="cache"
classname="fr.jayasoft.ivy.resolver.CacheResolver"/>.  It is distributed
inside ivy, but I don't think it is documented yet (previously it was not at
least).

Gilles


> -----Original Message-----
> From: Eric Crahen [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, December 21, 2006 7:25 PM
> To: [email protected]
> Subject: Re: Disconnected Development
> 
> I'll have to look at using a retrieve task. And using the get 
> seems like it could work.
> I was looking for something more build into the ant tasks so 
> it would seem like less work to people who use ivy. Sometimes 
> people can resist a tool if they see more than one line 
> because it seems like "a lot of work" to them, which is 
> somewhat silly in my opinion. I think I can make up some 
> auxiallary tasks that delegate to the ivy tasks, or write 
> some ant macros that give the appearance of a single line doing thing.
> 
> 
> On 12/21/06, Xavier Hanin <[EMAIL PROTECTED]> wrote:
> >
> > On 12/21/06, Eric Crahen <[EMAIL PROTECTED]> wrote:
> > >
> > > Maybe this has been answered, but let me explain what I 
> am trying to do.
> > >
> > > I have some Ivy projects that I build while connected to 
> my network 
> > > and everything is fine.
> > > Now and again I need to unplug for various reasons and 
> I'd like to 
> > > still work. I have stuff in my cache from previous 
> connected builds 
> > > but I seem to have two issues to overcome.
> > >
> > > ---
> > >
> > > The first is that I use <ivy:configure url="..."/>. I do this 
> > > because
> > its
> > > impractical to do otherwise.
> > > I have one configuration managed by someone for all my builds. It 
> > > just sets up resolver chains and what not.
> > >
> > > When I disconnect I fail the configure and can't take 
> advantage of 
> > > anything that has been cached.
> > >
> > > Do you think it would be possible for ivy to cache configuration 
> > > files
> > it
> > > downloads, so that
> > > when the network is unreachable it uses the cached version? Or 
> > > better
> > yet,
> > > it always uses
> > > a cached version and just updates the cache in a 
> background thread 
> > > with each build - so that I won't have to wait for a 
> network timeout 
> > > on each build?
> >
> >
> > It's possible, but you can simply use the get task from ant 
> and use a
> > <ivy:configure file="..."/>, and you'll be done without any 
> modification
> > in
> > Ivy.
> >
> > ---
> > >
> > > The second is that I sometimes use revision patterns like 
> "1.+'". When I
> > > use
> > > a pattern it seems
> > > the resolvers require a connection to query the server. 
> If I use "1.0"
> > > then
> > > I will just take from the
> > > cache directly.
> > >
> > > Would it be possible for the resolvers to just query the 
> local cache
> > when
> > > the network is down?
> >
> >
> > It's already possible to reuse the result of a last resolve 
> (as documented
> > in the post resolve task page of the doc). You can also use an
> > ivyconf.xmlwhere you use a cache resolver, which will perform a
> > resolve from cache only
> > (this would be easier with a useCacheOnly="true" feature or 
> something like
> > that, I agree). If you use the retrieve task then you can 
> simply bypass
> > Ivy
> > altogether when you are offline, and use your retrieved lib 
> dir as before.
> >
> > Xavier
> >
> > --
> > >
> > > - Eric
> > >
> > >
> >
> >
> 
> 
> -- 
> 
> - Eric
> 

Reply via email to