hot deploy in embedded jetty

hotdeploy, jetty, maven-2, maven-jetty-plugin, spring-roo

Solution

You need to set the `scanIntervalSeconds` to a value greater than 0 to enable it:

`scanIntervalSeconds` - The interval in seconds to scan the webapp for changes and restart the context if necessary. Ignored if reload is enabled. Disabled by default. Default value is: 0.

So the configuration might looks like this:

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>maven-jetty-plugin</artifactId>
  <version>6.1.22</version>
  <configuration>
    <scanIntervalSeconds>1</scanIntervalSeconds>
  </configuration>
</plugin>

Once enabled, the jetty maven plugin will scan the directory defined in `classDirecory` (which points to `${project.build.outputDirectory}` by default i.e. `target/classes`) for changes.

You then just need to have your IDE compile classes in `target/classes` (or to run `mvn compile`) and Jetty will restart the context upon changes on Java classes.

Problem

I have a Spring Roo project and I use `mvn jetty:run` to run my app. The only problem is changes to the `*.java` classes do not hot deploy, while changes to `*.jspx` hot deploy fine. So how can I configure mvn jetty to hotdeploy for java classes?

Original source