Maven

Accumulator of knowledge

For the impatient, here's how to get your first Vaadin application up and running:

mvn -B archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=LATEST -DgroupId=org.test -DartifactId=vaadin-app -Dversion=1.0-SNAPSHOT
cd vaadin-app
mvn package jetty:run

The application is now running at http://localhost:8080/.

If you are new to Vaadin, you might want to go through our tutorial, which also uses Maven.

See all available archetypes »
More detailed Maven instructions »

Using Vaadin Maven archetypes you can quickly create a new project for different purposes. They also give you example configurations that you can apply to your own projects.

Available archetypes (click on the name to update the code snippet)
vaadin-archetype-application Single-module project for simple applications. Good for quick demos and testing Vaadin.
vaadin-archetype-application-multimodule Complete Vaadin application development setup with separate production and development profiles.
vaadin-archetype-application-example Example CRUD web application using multimodule project setup.
vaadin-archetype-widget Multimodule setup for new Vaadin add-on with a demo application.
vaadin-archetype-touchkit Mobile development starter using Vaadin TouchKit
vaadin-archetype-liferay-portlet Portlet development setup for open-source Liferay portal

Command line Maven:

mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=LATEST
Read more about using archetypes »

While the archetypes are good way to start projects from scratch, you might want to install the Vaadin dependencies manually.

groupId artifactId description
com.vaadin vaadin-server Vaadin component API for server-side applications. (required)
com.vaadin vaadin-client-compiled Precompiled Vaadin client-side GWT widgets. Not needed if using your own widgetset.
com.vaadin vaadin-client Contains classes used to program client-side extensions. Only needed when developing own client side widgets and not needed at runtime.
com.vaadin vaadin-client-compiler Java to JavaScript compiler only when needed to compiling optimized client-side widgets. (optional)
com.vaadin vaadin-push Server push communication support for Vaadin. (optional)
com.vaadin vaadin-themes Default themes for Vaadin.


Here are the most common Vaadin dependencies to insert into your project's pom.xml:

 

                        
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-server</artifactId>
    <version>LATEST</version>
</dependency>
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-client-compiled</artifactId>
    <version>LATEST</version>
</dependency>

<!-- Optional for extending client-side See: https://vaadin.com/book/-/page/clientside.html
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-client</artifactId>
    <version>LATEST</version>
    <scope>provided</scope>
</dependency>
-->

<!-- Optional for optimizing client-side widgets See: https://vaadin.com/book/-/page/mobile.optimization.html
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-client-compiler</artifactId>
    <version>LATEST</version>
    <scope>provided</scope>
</dependency>
-->

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-themes</artifactId>
    <version>LATEST</version>
</dependency>

<!-- Optional push support for communication See: https://vaadin.com/book/-/page/advanced.push.html
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-push</artifactId>
    <version>LATEST</version>
</dependency>
-->
                        
                    
More information about Vaadin dependencies in Vaadin Wiki.

Search for Maven artifacts

Do you need JUnit, Mockito, SLF4J, Joda Time some other Java library? There are almost 100k open-source Java libraries you can use with Vaadin available in the Maven central repository.

Use the search below to search dependency information and browse JavaDoc for all publicly available artifacts.