summaryrefslogtreecommitdiffstats
path: root/documentation/getting-started/getting-started-maven.asciidoc
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
committerelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
commita1b265c318dbda4a213cec930785b81e4c0f7d2b (patch)
treeb149daf5a4f50b4f6446c906047cf86495fe0433 /documentation/getting-started/getting-started-maven.asciidoc
parentb9743a48a1bd0394f19c54ee938c6395a80f3cd8 (diff)
downloadvaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.tar.gz
vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.zip
Framework documentation IN
Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
Diffstat (limited to 'documentation/getting-started/getting-started-maven.asciidoc')
-rw-r--r--documentation/getting-started/getting-started-maven.asciidoc133
1 files changed, 133 insertions, 0 deletions
diff --git a/documentation/getting-started/getting-started-maven.asciidoc b/documentation/getting-started/getting-started-maven.asciidoc
new file mode 100644
index 0000000000..3914e973aa
--- /dev/null
+++ b/documentation/getting-started/getting-started-maven.asciidoc
@@ -0,0 +1,133 @@
+---
+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.
+
+[[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=[parameter]#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
+[literal]#++vaadin-archetype-application++# archetype for server-side
+applications and [literal]#++vaadin-archetype-widget++# for client-side widget
+development projects.
+
++
+//TODO Vaadin 7: Not all these archetypes are supported
++
+////
+&lt;itemizedlist&gt; &lt;listitem&gt; &lt;literal&gt;vaadin-archetype-clean&lt;/literal&gt; is a new project with a barebone skeleton for a regular Vaadin application. The &lt;filename&gt;pom.xml&lt;/filename&gt; includes out-commented definitions for additional widgets. &lt;/listitem&gt; &lt;/itemizedlist&gt; &lt;itemizedlist&gt; &lt;listitem&gt; &lt;literal&gt;vaadin-archetype-widget&lt;/literal&gt; is a skeleton for a project with custom widgets. &lt;/listitem&gt; &lt;/itemizedlist&gt; &lt;itemizedlist&gt; &lt;listitem&gt; &lt;literal&gt;vaadin-archetype-sample&lt;/literal&gt; is also for a project with custom widgets, but the skeleton includes the Color Picker example used in &lt;xref linkend="gwt"/&gt;. &lt;/listitem&gt; &lt;/itemizedlist&gt; &lt;itemizedlist&gt; &lt;listitem&gt; &lt;literal&gt;vaadin-archetype-addon&lt;/literal&gt; is for Vaadin add-on projects. It packages the add-on so that it can be published in Vaadin Directory. The archetype is for server-side add-ons and does not include definitions needed for building a widget set. If your add-on includes or requires other than the widgets in the Vaadin core library, you need to copy the required definitions from a POM of a &lt;literal&gt;vaadin-archetype-clean&lt;/literal&gt; project. &lt;/listitem&gt; &lt;/itemizedlist&gt; &lt;itemizedlist&gt; &lt;listitem&gt; &lt;literal&gt;vaadin-archetype-touchkit&lt;/literal&gt; is for projects using Vaadin TouchKit, described in &lt;xref linkend="mobile"/&gt;. Notice that this archetype uses the AGPL-licensed version of TouchKit, which requires that your project must also be licensed under the AGPL license. &lt;/listitem&gt; &lt;/itemizedlist&gt;
+////
+[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[]
+
+
+[[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")))
+
+