ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles Scokart" <gscok...@gmail.com>
Subject RE: Disconnected Development
Date Fri, 22 Dec 2006 07:55:30 GMT
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:eric.crahen.lists@gmail.com] 
> Sent: Thursday, December 21, 2006 7:25 PM
> To: ivy-user@incubator.apache.org
> 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 <xavier.hanin@gmail.com> wrote:
> >
> > On 12/21/06, Eric Crahen <eric.crahen.lists@gmail.com> 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
> 


Mime
View raw message