Vaadin 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.
A shared library for server-side and client-side development. It is always needed.
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.
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.
Vaadin 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 Vaadin Sass Compiler compiles Sass themes to CSS, as described in Syntactically Awesome Stylesheets (Sass). It requires the vaadin-themes-7.x.x.jar library, which contains the Sass sources for the built-in themes. The library needs to be included in deployment in development mode to allow on-the-fly compilation of themes, but it is not needed in production deployment, when the themes are compiled before deployment.
Some of the libraries depend on each other as well as on the dependency libraries provided in the lib folder of the installation package, especially the lib/vaadin-shared-deps.jar.
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 by including them in WEB-INF/lib. Some other libraries, such as vaadin-sass-compiler, are not needed in production deployment.