Documentation versions (currently viewingVaadin 24)

Hot Deploy & Live Reload

Describes using JRebel for automatic, real-time updates of Java code.

JRebel is a commercial developer productivity tool for automatic, real-time update of Java code in the running application. Vaadin detects the JRebel Agent and automatically reloads the application in the browser after the Java changes have been hotpatched.

Step-by-Step Guide

  • Set up and activate JRebel in your IDE by following the Quick Start guides available at Use at least the 2020.2.1 version, which contains built-in live reload integration.

  • Run or debug your Vaadin application using the JRebel Agent.

  • Navigate to your Vaadin application on the browser, make and save some changes, and the browser reloads automatically.

Additional Configuration

When using the Jetty Maven plugin together with JRebel, ensure that automatic restart is disabled (omit or set <scanIntervalSeconds> to a value of 0 or less).

Current Limitations

Since the server doesn’t restart, modifications to startup listeners and code that connects frontend and backend components, such as adding a new LitTemplate class, aren’t reflected. However, modifications to routes are picked up.

With @PreserveOnRefresh, view instances are reused when reloaded in the browser; hence, hotpatched changes to the view constructor aren’t reflected until the view is opened in another browser window or tab.