# Chapter 28. The Jetty Plugin

The Jetty plugin extends the War plugin to add tasks which allow you to deploy your web application to a Jetty web container embedded in the build.

## 28.1. Usage

To use the Jetty plugin, include in your build script:

Example 28.1. Using the Jetty plugin

`build.gradle`

    apply plugin: 'jetty'

## 28.2. Tasks

The Jetty plugin defines the following tasks:

Table 28.1. Jetty plugin - tasks

Task name | Depends on | Type | Description
`jettyRun` | `compile` | `JettyRun` | Starts a Jetty instance and deploys the exploded web application to it.
`jettyRunWar` | `war` | `JettyRunWar` | Starts a Jetty instance and deploys the WAR to it.
`jettyStop` | - | `JettyStop` | Stops the Jetty instance.

Figure 28.1. Jetty plugin - tasks

## 28.3. Project layout

The Jetty plugin uses the same layout as the War plugin.

## 28.4. Dependency management

The Jetty plugin does not define any dependency configurations.

## 28.5. Convention properties

The Jetty plugin defines the following convention properties:

Table 28.2. Jetty plugin - properties

Property name | Type | Default value | Description
`httpPort` | `Integer` | `8080` | The TCP port which Jetty should listen for HTTP requests on.
`stopPort` | `Integer` | `null` | The TCP port which Jetty should listen for admin requests on.
`stopKey` | `String` | `null` | The key to pass to Jetty when requesting it to stop.

These properties are provided by a `JettyPluginConvention` convention object.