123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- ---
- title: Using Vaadin with Maven
- order: 6
- layout: page
- ---
-
- [[getting-started.maven]]
- = Using Vaadin with Maven
-
- ((("Maven", "creating a project", id="term.maven.creating", range="startofrange")))
-
-
- Maven is a commonly used build and dependency management system. The Vaadin core
- library and all Vaadin add-ons are available through Maven. You can use a Maven
- with a front-end from Eclipse or NetBeans, or by using the command-line as
- described in this section.
-
- In addition to regular Maven, you can use any Maven-compatible build or
- dependency management system, such as Ivy or Gradle. For Gradle, see the
- link:https://github.com/johndevs/gradle-vaadin-plugin[Gradle Vaadin Plugin].
- Vaadin Plugin for Eclipse uses Ivy for resolving dependencies in Vaadin
- projects, and it should provide you with the basic Ivy configuration.
-
- For an interactive guide, see the instructions at link:https://vaadin.com/maven[vaadin.com/maven].
- It automatically generates you the command to create a new project based on archetype selection.
- It can also generate dependency declarations for Vaadin dependencies.
-
- [[getting-started.maven.command-line]]
- == Working from Command-Line
-
- You can create a new Maven project with the following command (given in one
- line):
-
- [subs="normal"]
- ----
- [prompt]#$# [command]#mvn# archetype:generate \
- -DarchetypeGroupId=com.vaadin \
- -DarchetypeArtifactId=[replaceable]#vaadin-archetype-application# \
- -DarchetypeVersion=[replaceable]#7.x.x# \
- -DgroupId=[replaceable]#your.company# \
- -DartifactId=[replaceable]#project-name# \
- -Dversion=[replaceable]#0.1# \
- -Dpackaging=war
- ----
- The parameters are as follows:
-
- [parameter]#archetypeGroupId#:: The group ID of the archetype is [literal]#++com.vaadin++# for Vaadin
- archetypes.
-
- [parameter]#archetypeArtifactId#:: The archetype ID.
- Vaadin 7 currently supports the following archetypes:
-
- `vaadin-archetype-application`;;
- A single-module project for simple applications.
- Good for quick demos and trying out Vaadin.
-
- `vaadin-archetype-application-multimodule`;;
- A complete Vaadin application development setup.
- It features separate production and development profiles.
-
- `vaadin-archetype-application-example`;;
- An example CRUD web application using multi-module project setup.
-
- `vaadin-archetype-widget`;;
- A multi-module project for a new Vaadin add-on.
- It has two modules: one for the add-on and another for a demo application.
-
- `vaadin-archetype-touchkit`;;
- A mobile development starter project using Vaadin TouchKit.
- See <<dummy/../../../touchkit/touchkit-overview#touchkit.overview,"Vaadin TouchKit">>.
- Notice that this archetype uses the AGPL-licensed version of TouchKit, which requires that your project must also be licensed under the AGPL license.
-
- `vaadin-archetype-liferay-portlet`;;
- A portlet development setup for the open-source Liferay portal.
-
- [parameter]#archetypeVersion#:: Version of the archetype to use. This should be [literal]#++LATEST++# for normal
- Vaadin releases. For prerelease versions it should be the exact version number,
- such as [literal]#++7.5.3++#.
-
- [parameter]#groupId#:: A Maven group ID for your project. It is normally your organization domain name
- in reverse order, such as com.example. The group ID is also used as a prefix for
- the Java package in the sources, so it should be Java compatible - only
- alphanumerics and an underscore.
-
- [parameter]#artifactId#:: Identifier of the artifact, that is, your project. The identifier may contain
- alphanumerics, minus, and underscore. It is appended to the group ID to obtain
- the Java package name for the sources. For example, if the group ID is
- com.example and artifact ID is myproject, the project sources would be placed in
- com.example.myproject package.
-
- [parameter]#version#:: Initial version number of your application. The number must obey the Maven
- version numbering format.
-
- [parameter]#packaging#:: How will the project be packaged. It is normally [literal]#++war++#.
-
-
-
- Creating a project can take a while as Maven fetches all the dependencies. The
- created project structure is shown in
- <<figure.getting-started.maven.archetype.created>>.
-
- [[figure.getting-started.maven.archetype.created]]
- .A New Vaadin Project with Maven
- image::img/maven-project-created.png[scaledwidth=60%]
-
-
- [[getting-started.maven.compiling]]
- == Compiling and Running the Application
-
- ((("Maven", "compiling", id="term.maven.compiling", range="startofrange")))
-
-
- Before the application can be deployed, it must be compiled and packaged as a
- WAR package. You can do this with the [literal]#++package++# goal as follows:
-
- [subs="normal"]
- ----
- [prompt]#$# [command]#mvn# package
- ----
- The location of the resulting WAR package should be displayed in the command
- output. You can then deploy it to your favorite application server.
-
- The easiest way to run Vaadin applications with Maven is to use the light-weight
- Jetty web server. After compiling the package, all you need to do is type:
-
- [subs="normal"]
- ----
- [prompt]#$# [command]#mvn# jetty:run
- ----
- The special goal starts the Jetty server in port 8080 and deploys the
- application. You can then open it in a web browser at
- http://localhost:8080/project-name.
-
- (((range="endofrange", startref="term.maven.compiling")))
-
- [[getting-started.maven.addons]]
- == Using Add-ons and Custom Widget Sets
-
- ((("Maven", "using add-ons", id="term.maven.addons", range="startofrange")))
-
-
- If you use Vaadin add-ons that include a widget set or make your custom widgets,
- you need to enable widget set compilation in the POM. The required configuration
- is described in
- <<dummy/../../../framework/addons/addons-maven#addons.maven,"Using Add-ons in a
- Maven Project">>.
-
-
- (((range="endofrange", startref="term.maven.addons")))
- (((range="endofrange", startref="term.maven.creating")))
|