blob: 0844ff248a1cd15a1243f8e9c8758f90f2b7ba5c [file] [log] [blame]
---
Deployment
---
Mark Hobson
<markhobson@gmail.com>
---
2010-02-15
---
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied. See the License for the
~~ specific language governing permissions and limitations
~~ under the License.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html
Deployment
The plugin provides various methods of deployment to Tomcat:
* {{{#Deploying_a_WAR_file}Deploying a WAR file}}
* {{{#Deploying_an_exploded_WAR_directory}Deploying an exploded WAR directory}},
with an optional <<<context.xml>>> file
* {{{#Deploying_an_in-place_WAR_directory}Deploying an in-place WAR directory}},
with an optional <<<context.xml>>> file
* {{{#Deploying_a_context.xml_file}Deploying a <<<context.xml>>> file}}
* {{{#Running_a_WAR_project}Running a WAR project}}
[]
These are described in more detail below.
* {Deploying a WAR file}
The simplest way to deploy a WAR project to Tomcat is to type:
+--
mvn tomcat:deploy
+--
This goal will assemble and deploy the WAR file to Tomcat's manager using
HTTP PUT.
** Using a different WAR file location
To specify a different WAR file location, add a plugin configuration block to
your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<warFile>path/to/my/warFile.war</warFile>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default location is
<<<$\{project.build.directory\}/$\{project.build.finalName\}.war>>>.
** Using a <<<context.xml>>> file
If you need to specify a <<<context.xml>>> file when deploying a WAR file to
Tomcat, then it must be included within the WAR. The simplest way to achieve
this is by adding it to your webapp resources:
+--
src
|_ main
|_ webapp
|_ META-INF
|_ context.xml
+--
* {Deploying an exploded WAR directory}
To avoid building a WAR file upon deployment, a WAR directory can instead be
deployed to Tomcat by typing:
+--
mvn war:exploded tomcat:exploded
+--
** Using a different WAR directory location
To specify a different WAR directory location, add a plugin configuration
block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<warDirectory>path/to/my/warDir</warDirectory>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default location is
<<<$\{project.build.directory\}/$\{project.build.finalName\}>>>.
** Using a <<<context.xml>>> file
To supply a <<<context.xml>>> when deploying a WAR directory, add a plugin
configuration block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<mode>both</mode>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default <<<context.xml>>> file use is located at
<<<src/main/webapp/META-INF/context.xml>>>.
** Using a different <<<context.xml>>> file location
To specify a different <<<context.xml>>> file location, add a plugin
configuration block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<contextFile>path/to/my/contextFile.xml</contextFile>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default location is
<<<$\{project.build.directory\}/$\{project.build.finalName\}/META-INF/context.xml>>>.
* {Deploying an in-place WAR directory}
To avoid copying resources to the build directory, the webapp source directory
can be deployed to Tomcat by typing:
+--
mvn war:inplace tomcat:inplace
+--
** Using a different WAR directory location
To specify a different WAR directory location, add a plugin configuration
block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<warSourceDirectory>path/to/my/warSourceDir</warSourceDirectory>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default location is <<<$\{basedir\}/src/main/webapp>>>.
** Using a <<<context.xml>>> file
To supply a <<<context.xml>>> when deploying a WAR directory to Tomcat, add a
plugin configuration block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<mode>both</mode>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
+--
The default <<<context.xml>>> file used is located at
<<<src/main/webapp/META-INF/context.xml>>>.
** Using a different <<<context.xml>>> file location
To specify a different <<<context.xml>>> file location, add a plugin
configuration block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<contextFile>path/to/my/contextFile.xml</contextFile>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default location is
<<<$\{project.build.directory\}/$\{project.build.finalName\}/META-INF/context.xml>>>.
* {Deploying a context.xml file}
To simply deploy just a <<<context.xml>>> file to Tomcat:
[[1]] Add a plugin configuration block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<mode>context</mode>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
[[2]] Deploy the <<<context.xml>>> file by typing:
+--
mvn tomcat:deploy
+--
[]
The default <<<context.xml>>> file used is located at
<<<src/main/webapp/META-INF/context.xml>>>.
** Using a different <<<context.xml>>> file location
To specify a different <<<context.xml>>> file location, add a plugin
configuration block to your <<<pom.xml>>> as follows:
+--
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<contextFile>path/to/my/contextFile.xml</contextFile>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
+--
The default location is
<<<$\{project.build.directory\}/$\{project.build.finalName\}/META-INF/context.xml>>>.
* {Running a WAR project}
A WAR project can be run under an embedded Tomcat server by typing:
+--
mvn tomcat:run
+--
To stop the embedded server, press <<<CTRL+C>>>.