You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@buildr.apache.org by Martin Grotzke <ma...@javakaffee.de> on 2009/03/01 23:21:39 UTC
run jetty from a known webapp directory or with at least a known
classes folder
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?
Thanx && cheers,
Martin
Re: run jetty from a known webapp directory or with at least a
known classes folder
Posted by Martin Grotzke <ma...@javakaffee.de>.
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
>
Re: run jetty from a known webapp directory or with at least a known classes folder
Posted by Rhett Sutphin <rh...@detailedbalance.net>.
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