package aQute.maven.dto;
import java.util.Map;
import aQute.bnd.util.dto.DTO;
import aQute.bnd.version.MavenVersion;
/**
* The <code><plugin></code> element contains informations required for a
* plugin.
*
*/
public class PluginDTO extends DTO {
/**
* The group ID of the plugin in the repository.
*/
public String groupId = "org.apache.maven.plugins";
/**
* The artifact ID of the plugin in the repository.
*
*/
public String artifactId;
/**
* The version (or valid range of versions) of the plugin to be used.
*/
public MavenVersion version;
/**
* Whether to load Maven extensions (such as packaging and type handlers)
* from this plugin. For performance reasons, this should only be enabled
* when necessary. 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>false</code>.
*
*/
public String extensions;
/**
* Multiple specifications of a set of goals to execute during the build
* lifecycle, each having (possibly) a different configuration.
*
*/
public PluginExecutionDTO[] executions;
/**
* Additional dependencies that this project needs to introduce to the
* plugin's classloader.
*/
public DependencyDTO[] depencies;
/**
* 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 = true;
/**
* <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, String> configuration;
}