Search code examples
maven-2jettyspring-roomaven-jetty-pluginhotdeploy

hot deploy in embedded jetty


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?


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.