XL Deploy Plugin

The XL Deploy Maven plugin is used to deploy a deployment package to an single environment.

Definition: Deployment is the 'series of activities needed to make an application available to end users'. This includes the full scope of deployment activities: de-installation of the old software packages, installation of the new software packages, updating the data source(s), modifying firewall settings, reconfiguring the web server and restarting all services involved. Or rephrased in more simple terms: deployment is everything needed to ensure that if a developer, tester or end user opens his browser and types in www.my-application.com, he will see the application up and running, fully functional with (live) data.

This plugin is in particular handy to perform integration tests for other Maven plugins.

IMPORTANT: Since version 4.0.0, this plugin requires Java 7.

Goals Overview

The plugin has four goals meant to participate in the default build lifecycle:

Usage

General instructions on how to use the plugin can be found on the usage page. Some more specific use cases are described in the examples given below.

If you still have questions regarding the plugin's usage, please have a look at the FAQ.

If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our issue tracker. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Contributors can check out the project from our source repository.

Deployable formats

The Maven plugin allows you to specify deployables in two formats.

New format:

 <deployables>
    <file.Folder name="configuration" location="config"/>
 </deployables>

Legacy format:

 <deployables>
    <deployable>
        <name>configuration</name>
        <type>file.Folder</type>
        <location>config</location>
    </deployable>
 </deployables>

The new format is similar to the content of a deployit-manifest.xml file as generated by XL Deploy. It supports features that the legacy format does not. For new packages, it is recommended that you use the new format.

The legacy format has limited features and is no longer updated or improved.

While deployables defined in this way have properties that can be found on related types there are some "special" properties that are specific to maven plugin. Location is such property. Location is used to specify location of artifacts in the maven project.

Examples

The following example configurations are available to illustrate selected use cases in more detail: