Vaadin Framework comes as a set of library JARs, of which some are optional or alternative ones, depending on whether you are developing server-side or client-side applications, whether you use add-on components, or use CSS or Sass themes.
The main library for developing server-side Vaadin applications, as described in "Writing a Server-Side Web Application". It requires the vaadin-shared and the vaadin-themes libraries. You can use the pre-built vaadin-client-compiled for server-side development, unless you need add-on components or custom widgets.
Vaadin Framework built-in themes both as SCSS source files and precompiled CSS files. The library is required both for basic use with CSS themes and for compiling custom Sass themes.
The implementation of server push for Vaadin Framework. This is needed for web applications which use server push (e.g. using the @Push annotation in a Servlet class).
A shared library for server-side and client-side development. It is always needed.
A pre-compiled Vaadin Client-Side Engine (widget set) that includes all the basic built-in widgets in Vaadin. This library is not needed if you compile the application widget set with the Vaadin Client Compiler.
The client-side Vaadin Framework, including the basic GWT API and Vaadin-specific widgets and other additions. It is required when using the vaadin-client-compiler to compile client-side modules. It is not needed if you just use the server-side framework with the pre-compiled Client-Side Engine. You should not deploy it with a web application.
For detailed information regarding the compiler, see "Compiling a Client-Side Module". Note that you should not deploy this library with a web application.
The Vaadin Framework 7 compatibility packages contain the components and themes that are present in framework version 7, but not in version 8. These packages exist for making it easier to migrate from version 7 to 8. There is a compatibility package for everything except vaadin-client-compiler.
Some of the libraries depend on each other, for instance vaadin-shared is included as a dependency of vaadin-server.
The different ways to install the libraries are described in the subsequent sections.
Note that the vaadin-client-compiler and vaadin-client JARs should not be deployed with the web application. The Maven scope provided can be used. Some other libraries, such as vaadin-sass-compiler, are not needed in production deployment.