Alex Rivera | Logout

Java web development environment to minimize build-deploy-test cycle time?

Asked 2009-07-09T23:59:39.023
10

What Java web development environment is the best for absolutely minimizing the build-deploy-test cycle time?

Web development environment: JBOSS, Tomcat, Jetty? Deploy WAR exploded? Copy WAR or use symbolic links? There are factors here I don't know about.

Build-deploy-test cycle? The amount of time it takes to test a change in the browser after making a change to the source code or other resources (including Java source, HTML, JSP, JS, images, etc.).

I am looking to speed up my development by reducing the amount of time I spend watching Ant builds and J2EE containers start. I want the Ruby on Rails experience --- or as close as I can get.

I'd prefer a solution that is web framework agnostic, however if a particular framework is particularly advantageous, then I'd like to hear about it.

Assume all the standard tools are in use: Hibernate, Spring, JMS, etc. If stubbing/mocking support infrastructure is required to make this work, I'm OK with that. In fact, I'm OK with having a development environment that is very different from our production environment if it saves me enough time.

Edit
Report

4 Answers

7
answered 2009-07-10T00:07:53.733
6

JBOSS uses Tomcat for its servlet/JSP engine, so that's a wash.

Tomcat does support hot deploy.

Jetty's pretty small and starts quickly, but it doesn't support hot deploy.

Eclipse is merely an IDE. It needs a servlet/JSP engine of some kind. If it's like IntelliJ, you can use any Java EE app server or servlet/JSP engine you'd like.

IntelliJ is pretty darned fast, and you don't have to stop and start the server every time you rebuild. It works off the exploded WAR, so things happen fast.

answered 2009-07-10T00:33:11.467
3

Jboss Seam together with the Jboss Developer Studio is good for hot deploying everything aside from EJBs (SLSB, SFSB and Entities need redeploy).

answered 2009-07-10T08:48:14.353
2
  • Small web containers will load faster than overloaded webcontainers with the kitchen sink built in (.. cough .. jboss ).
  • Some design decisions slow build times (e.g. aspect-weaving based toolkits add an aspect-weaving phase to compile times).
  • Avoid building components that can only be tested after long elaborate load cycles. Caches are a prime culprit here. If your system has deep dependencies on a global cache scattered everywhere you'll need to load the cache every time you need to test something.
  • Unit-testable components, so you can run pieces instead of the whole thing.

I find that projects built reasonably compile, deploy, and startup in a few to 10 seconds, which is usually fine.

answered 2009-07-10T00:26:11.777

Your Answer