Live Reload

The Jetty Maven plugin with the scanIntervalSeconds configuration set to a positive value performs complete application restart when the given number of seconds have elapsed since the last Java change. For instance:

<plugins>
    <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.4.36.v20210114</version>
        <configuration>
            <scanIntervalSeconds>2</scanIntervalSeconds>
        </configuration>
    </plugin>

    <!-- more plugins -->
</plugins>
Note
Recommended minimum version

Jetty Maven Plugin versions before 9.4.36.v20210114 have known issues:

  • RouteNotFoundException when trying to reload Java changes automatically

  • A reload loop on Windows when setting scanIntervalSeconds to a small positive value

Since the plugin performs a full server restart, all Java changes are picked up. This includes modifications to server startup listeners as well as changes to code that connects frontend and backend components, such as adding a new LitTemplate class, or adding a new CSS import and using it in Java via @CssImport annotation.

However, the session is not preserved during the restart.