You need at least the following tools during application development:
Java JDK (8 or newer)
Maven (3 or newer) or Gradle (5.6 or newer)
Node.js (10 or newer, installed automatically by Vaadin)
npm (5.6 or newer, part of Node.js installation)
While Java 8 is supported, we recommend using Java 11 (the latest LTS version) or later, but you need to make sure that your entire toolchain supports it.
Optionally, you can use:
A Java IDE (Eclipse EE, NetBeans IDE, IntelliJ IDEA, VS Code, etc.)
A front-end IDE such as VS Code, WebStorm, or Atom
An external Java Servlet Container (Tomcat, TomEE, JBoss, WildFly, GlassFish, etc.)
For a particular version of the Vaadin, please see the release notes for a more comprehensive list of requirements.
Vaadin applications are run by deploying them to a Java Servlet Container (a server application). All Vaadin starter packs come with an embedded servlet container that can be used during development. You can also use an external servlet container, such as Tomcat, WildFly, or WebLogic. IDEs include integration with external containers and one can make debugging easier, and more compatible if you use the same one for production.
Managing Vaadin and other Java libraries can get tedious to do manually, so using a build system that manages dependencies automatically is recommended. Vaadin is distributed in the Maven central repository, and can be used with any build or dependency management system that can access Maven repositories, such as Ivy or Gradle, in addition to Maven.
The npm package manager is used for managing Vaadin frontend dependencies.
Unless Node.js is already installed globally, Vaadin automatically downloads and installs it into the
Other required frontend tools, such as webpack, are automatically installed into each project by npm.
A caching package manager, pnpm, allows sharing dependencies between projects.
See Frontend Tools for more details.