Directory

Jetty Vaadin Add-on - Vaadin Add-on Directory

Simplified Vaadin add-on development with Maven and Jetty Jetty Vaadin Add-on - Vaadin Add-on Directory
# Jetty Vaadin Add-on Jetty Vaadin is a Vaadin add-on that allows you to run a Jetty Server for a Vaadin application in Java. ## Creating Vaadin add-ons Jetty Vaadin Add-on is highly useful when developing Vaadin add-ons. It simplifies the development cycle by allowing you have both, the code for the add-on itself and the code for any demo application, in the same project. Follow this instructions to get a single module Vaadin add-on Maven project: **1)** Create a Vaadin project using the `vaadin-archetype-widget` Maven archetype (see [this](https://vaadin.com/maven#archetypes)). **2)** Remove the generated demo module and copy the `src` directory, the `assembly` directory, and the `pom.xml` file in the addon module to the root directory and remove the addon directory (this will overwrite the pom in the root directory). **3)** Add the `jetty-vaadin` dependency using `test` in your `pom.xml`. **4)** Add the `vaadin-themes` dependency in your `pom.xml` if required (most of the time it is): ``` com.vaadin vaadin-themes ${vaadin.version} test ``` **5)** If a custom widgetset is required, add the `vaadin-maven-plugin`. See [this](https://github.com/alejandro-du/jetty-vaadin/blob/master/pom.xml#L110-L132). **6)** If no custom widgetset is required, add the `vaadin-client-compiled`: ``` com.vaadin vaadin-client-compiled ${vaadin.version} test ``` **7)** Implement a UI in the test directory. Use the `@Widgetset` annotation if required: ``` @Widgetset("com.example.WidgetSet") public class TestUI extends UI { ... } ``` **8)** Add a standard `main` method to the UI implementation and create and start a new `VaadinJettyServer`: ``` public static void main(String[] args) throws Exception { VaadinJettyServer server = new VaadinJettyServer(8080); server.start(); } ``` **9)** Build the project (mvn clean package). **10)** Run the standalone Java application from your IDE (the IDE will manage the classpath) or with Maven: ``` mvn exec:java -Dexec.mainClass="com.example.TestUI" -Dexec.classpathScope=test ``` If you are using Linux or Mac, you can copy and paste the following in a terminal and continue from step 3: ``` mvn -B archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-widget -DarchetypeVersion=7.6.8 -DgroupId=com.example -Dpackage=com.example -DartifactId=example -DreleaseVersion=1.0-SNAPSHOT cd example rm -rf example-demo/ cp -r example-addon/src . cp -r example-addon/assembly . cp example-addon/pom.xml . rm -rf example-addon/ ``` See also [Addon test helpers](https://vaadin.com/directory#!addon/addon-test-helpers). ## License Jetty Vaadin Add-on is distributed under Apache License 2.0.