Running a trial web app using Maven, Eclipse and Jetty

On my page about creating a web app I described how to quickly set up a web app project with Maven and Eclipse. Now let's see if we can run that web app!

Using Maven to Run Jetty

Maven can be used to run Jetty on your local machine, and configured to run a webapp. Sounds complicated, but really it's not!

Revised Jetty plugin to showing some of the common settings that can be changed to suit your needs. This specifies running Jetty on port 8080 (the default) and setting your webapp context path as the document root. It is also configured to periodically scan the project for changes and automatically redeploy the webapp.

<plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.0.0.M3</version>
            <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <contextPath>/</contextPath>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <stopKey>STOP</stopKey>
                    <stopPort>8005</stopPort>
                    <port>8080</port>
            </configuration>            
</plugin>

The Complete pom.xml file for our demo project

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>uk.co.itforeveryone</groupId>
  <artifactId>demo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>demo</finalName>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.0.0.M3</version>
            <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <contextPath>/</contextPath>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <stopKey>STOP</stopKey>
                    <stopPort>8005</stopPort>
                    <port>8080</port>
            </configuration>            
        </plugin>
    </plugins>
  </build>
</project>