package aQute.maven.dto;
import java.util.Map;
import aQute.bnd.util.dto.DTO;
/**
* The <code><execution></code> element contains informations required for
* the execution of a plugin.
*/
public class PluginExecutionDTO extends DTO {
/**
* The identifier of this execution for labelling the goals during the
* build, and for matching executions to merge during inheritance and
* profile injection.
*
*/
public String id = "default";
/**
* The build lifecycle phase to bind the goals in this execution to. If
* omitted, the goals will be bound to the default phase specified by the
* plugin.
*/
public String phase;
/**
* The goals to execute with the given configuration.
*/
public String[] goals;
/**
* Whether any configuration should be propagated to child POMs. Note: While
* the type of this field is <code>String</code> for technical reasons, the
* semantic type is actually <code>Boolean</code>. Default value is
* <code>true</code>.
*
*/
public boolean inherited;
/**
* <p>
* The configuration as DOM object.
* </p>
* <p>
* By default, every element content is trimmed, but starting with Maven
* 3.1.0, you can add <code>xml:space="preserve"</code> to elements you want
* to preserve whitespace.
* </p>
* <p>
* You can control how child POMs inherit configuration from parent POMs by
* adding <code>combine.children</code> or <code>combine.self</code>
* attributes to the children of the configuration element:
* </p>
* <ul>
* <li><code>combine.children</code>: available values are
* <code>merge</code> (default) and <code>append</code>,</li>
* <li><code>combine.self</code>: available values are <code>merge</code>
* (default) and <code>override</code>.</li>
* </ul>
* <p>
* See <a href="http://maven.apache.org/pom.html#Plugins">POM Reference
* documentation</a> and <a href=
* "http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">
* Xpp3DomUtils</a> for more information.
* </p>
*/
public Map<String, Object> configuration;
}