Why Migrate?
This guide provides a detailed walkthrough for converting a traditional Vaadin 8 Maven project to a modern Vaadin-Spring-Boot application. The primary benefit of this migration is leveraging Spring Boot's auto-configuration, simplified dependency management, and seamless integration with the broader Spring ecosystem. This interactive tool will help you visualize the changes and understand the core concepts behind the migration.
The Migration Process at a Glance
This diagram shows the high-level steps for the migration. Click on any step to jump to the detailed instructions.
Update pom.xml
Create Main Class
Annotate UIs & Views
Configure & Run
1. Interactive `pom.xml` Comparison
The first and most critical step is updating your `pom.xml`. Instead of just showing the new code, this tool lets you compare the old and new structures side-by-side. The left side represents a typical Vaadin 8 POM, and the right shows the new Spring Boot equivalent. Notice how the Spring Boot parent simplifies dependency management.
Before: Standard Vaadin 8 POM
<properties>
<vaadin.version>8.14.3</vaadin.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-server</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client-compiled</artifactId>
<version>${vaadin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.version}</version>
...
</plugin>
</plugins>
</build>
After: Vaadin with Spring Boot
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.18.RELEASE</version>
</parent>
<properties>
<vaadin.version>8.14.3</vaadin.version>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
<version>${vaadin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>