buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Boisvert <alex.boisv...@gmail.com>
Subject Re: file task depend on artifact
Date Fri, 16 Apr 2010 18:36:38 GMT
Works fine for me.   Are you triggering the :compile task?

alex


On Fri, Apr 16, 2010 at 2:08 AM, Mod Mdo <omdivo@gmail.com> wrote:

> Dear Buildr users
>
> I've tried to create task which copy library files from
> local repository on my disc to local war/WEB-INF/lib directory needed by
> gwt
> dev mode.
>
> It should copy library only if there is new update of library in
> repository.
>
> I've created file task:
>
> SERVER = group("server-common",
> "server-domain"
> "server-query", "server-query-api",
> :under=>"example", :version=>"0.0.1-SNAPSHOT")
>
> artifacts(SERVER).each do |artif|
>
>  warlib = "war/WEB-INF/lib"
>  targetFile = File.join(warlib, File.basename(artif.to_s))
>
>   file targetFile => [artif.to_s] do
>   puts "file targetFile " + targetFile.to_s
>   artifName = artif.to_s
>   cp artifName, warlib
>
> end
> task :compile => [targetFile]
> end
>
> Unfortunately it does not copy when library in repository is updated.
>
> I've end up with pure ruby solution :
>
> def initlibs
> warlib = 'war/WEB-INF/lib/'
> if (!File.directory?(warlib))
> puts "mkdir " + warlib
> mkpath warlib
> end
> artifacts(SERVER).each do |artif|
> artif.invoke
> repfile = artif.to_s
> libfile = File.join(warlib, File.basename(repfile))
> if( libfile =~ /gwt-servlet/ ) #special case for gwt-servlet
> libfile = File.join(warlib, "gwt-servlet.jar")
> end
> if( File.ctime(libfile) < File.ctime(repfile) )
> puts "cp #{libfile} , #{repfile}"
> cp libfile , repfile
> end
>  end
>  end
> initlibs
>
> Do you know better solution?
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message