buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rhett Sutphin <>
Subject Re: run jetty from a known webapp directory or with at least a known classes folder
Date Mon, 02 Mar 2009 02:18:56 GMT
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:


     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|
         war_package.libs.each do |lib|
           cp lib.to_s, _('src/main/webapp/WEB-INF/lib')

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  

   jetty.deploy "#{jetty.url}/path", _(exploded_path).to_s


View raw message