buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grotzke <martin.grot...@javakaffee.de>
Subject Re: run jetty from a known webapp directory or with at least a known classes folder
Date Mon, 02 Mar 2009 07:37:03 GMT
Hi Rhett,

thanx for the feedback! I'll try this and give feedback then.

Cheers,
Martin


On Sun, 2009-03-01 at 20:18 -0600, Rhett Sutphin wrote:
> Hi Martin,
> 
> On Mar 1, 2009, at 4:21 PM, Martin Grotzke wrote:
> 
> > Hi,
> >
> > I want to run our wicket application with the buildr jetty plugin and
> > want to use javarebel for reloading changed classes.
> >
> > I noticed, that the buildr jetty plugin runs jetty from a tmp webapps
> > location like e.g.
> >  /tmp/Jetty_0_0_0_0_8080_mywebapp-1.0.0.war___s129z2/webapp
> >
> > For javarebel I need to know/specify the location of classes that  
> > shall
> > be monitored for changes.
> >
> > Is it possible to modify the jetty plugin so that it uses e.g.
> > target/classes or an exploded war in the target directory?
> 
> The jetty plugin's jetty.deploy method can directly deploy an exploded  
> webapp from whatever directory you specify.  buildr doesn't have a  
> built-in exploded webapp task (AFAIK).  Here's the one I use:
> 
>      directory(_('src/main/webapp/WEB-INF/lib'))
> 
>      task :explode => [compile, _('src/main/webapp/WEB-INF/lib')] do
>        packages.detect { |pkg| pkg.to_s =~ /war$/ }.tap do |war_package|
>          war_package.classes.each do |clz_src|
>            filter.from(clz_src).into(_('src/main/webapp/WEB-INF/ 
> classes')).run
>          end
>          war_package.libs.each do |lib|
>            cp lib.to_s, _('src/main/webapp/WEB-INF/lib')
>          end
>        end
>      end
> 
> It builds an exploded war in place over the src/main/webapp  
> directory.  The value of this is that changes to static resources and  
> JSPs are immediately picked up (without a build separate step).  If  
> you prefer, you could also write something which depends on the  
> package step and then unpacks the war somewhere under target.
> 
> In either case, you can use the built-in jetty support to deploy like  
> so:
> 
>    jetty.deploy "#{jetty.url}/path", _(exploded_path).to_s
> 
> Rhett
> 

Mime
View raw message