blob: e6aaa450afc2610c14a5310b992fd2225430687a [file] [log] [blame]
<?xml version="1.0"?>
<!--
~ Copyright 2006 The Apache Software Foundation.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<!-- Note Definitions of FileSet, FileItem, and DependencySet are
already defined in descriptor.mod, but repeated here since
Modello currently does not have capability to share files
-->
<model>
<id>component</id>
<name>Component</name>
<description>
<![CDATA[
<p>
When creating several assemblies for a project with a custom assembly
descriptor, it can't be helped that you will be duplicating some parts of
a defined assembly. These duplicates can be extracted and placed in a
separate file called a descriptor component.
</p>
<p>
Descriptor components contain FileSets, Files, and DependencySets meant
to be shared by assembly descriptors by referencing them using
&lt;componentDescriptors&gt;. It allows multiple assemblies to share a set
of user defined collections.
</p>
]]>
</description>
<defaults>
<default>
<key>package</key>
<value>org.apache.maven.plugins.assembly.model</value>
</default>
</defaults>
<classes>
<class rootElement="true" xml.tagName="component">
<name>Component</name>
<description>Describes the component layout and packaging.</description>
<version>1.0.0</version>
<fields>
<field>
<name>fileSets</name>
<version>1.0.0</version>
<association>
<type>FileSet</type>
<multiplicity>*</multiplicity>
</association>
<description>
<![CDATA[
Specifies which groups of files to include in the assembly. A
fileSet is specified by providing one or more of &lt;fileSet&gt;
subelements.
]]>
</description>
</field>
<field>
<name>files</name>
<version>1.0.0</version>
<association>
<type>FileItem</type>
<multiplicity>*</multiplicity>
</association>
<description>
<![CDATA[
Specifies which single files to include in the assembly. A file
is specified by providing one or more of &lt;file&gt;
subelements.
]]>
</description>
</field>
<field>
<name>dependencySets</name>
<version>1.0.0</version>
<association>
<type>DependencySet</type>
<multiplicity>*</multiplicity>
</association>
<description>
<![CDATA[
Specifies which dependencies to include in the assembly. A
dependencySet is specified by providing one or more of
&lt;dependencySet&gt; subelements.
]]>
</description>
</field>
<field>
<name>repositories</name>
<version>1.0.0</version>
<association>
<type>Repository</type>
<multiplicity>*</multiplicity>
</association>
<description>
<![CDATA[
Specifies a set of repositories to include in the assembly. A
repository is specified by providing one or more of
&lt;repository&gt; subelements.
]]>
</description>
</field>
</fields>
</class>
<class>
<name>SetBase</name>
<version>1.0.0</version>
<fields>
<field>
<name>outputDirectory</name>
<version>1.0.0</version>
<type>String</type>
<description>
Sets the output directory relative to the root
of the root directory of the assembly. For example,
"log" will put the specified files in the log directory.
</description>
</field>
<field>
<name>includes</name>
<version>1.0.0</version>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
<description>
<![CDATA[
When &lt;include&gt; subelements are present, they define a set of
files and directory to include. If none is present, then
&lt;includes&gt; represents all valid values.
]]>
</description>
</field>
<field>
<name>excludes</name>
<version>1.0.0</version>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
<description>
<![CDATA[
When &lt;exclude&gt; subelements are present, they define a set of
files and directory to exclude. If none is present, then
&lt;excludes&gt; represents no exclusions.
]]>
</description>
</field>
<field>
<name>fileMode</name>
<version>1.0.0</version>
<type>String</type>
<defaultValue>0644</defaultValue>
<description>
<![CDATA[
Similar to a UNIX permission, sets the file mode of the files included.
Format: (User)(Group)(Other) where each component is a sum of Read = 4,
Write = 2, and Execute = 1. For example, the default value of 0644
translates to User read-write, Group and Other read-only.
<a href="http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html">(more on unix-style permissions)</a>
]]>
</description>
</field>
<field>
<name>directoryMode</name>
<version>1.0.0</version>
<type>String</type>
<defaultValue>0755</defaultValue>
<description>
<![CDATA[
Similar to a UNIX permission, sets the directory mode of the directories
included. Format: (User)(Group)(Other) where each component is a sum of
Read = 4, Write = 2, and Execute = 1. For example, the default value of
0644 translates to User read-write, Group and Other read-only.
<a href="http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html">(more on unix-style permissions)</a>
]]>
</description>
</field>
</fields>
</class>
<class>
<name>FileSet</name>
<version>1.0.0</version>
<superClass>SetBase</superClass>
<description>
A fileSet allows the inclusion of groups of files into the assembly.
</description>
<fields>
<field>
<name>directory</name>
<version>1.0.0</version>
<type>String</type>
<description>
Sets the absolute or relative location from the module's
directory. For example, "src/main/bin" would select this
subdirectory of the project in which this dependency is defined.
</description>
<required>true</required>
</field>
<field>
<name>lineEnding</name>
<version>1.0.0</version>
<type>String</type>
<description>
<![CDATA[
Sets the line-endings of the files in this fileSet.
Valid values:
<ul>
<li><b>"keep"</b> - Preserve all line endings</li>
<li><b>"unix"</b> - Use Unix-style line endings</li>
<li><b>"lf"</b> - Use a single line-feed line endings</li>
<li><b>"dos"</b> - Use DOS-style line endings</li>
<li><b>"crlf"</b> - Use Carraige-return, line-feed line endings</li>
</ul>
]]>
</description>
</field>
</fields>
</class>
<class>
<name>FileItem</name>
<version>1.0.0</version>
<description>
A file allows individual file inclusion with the option to change
the destination filename not supported by fileSets.
</description>
<fields>
<field>
<name>source</name>
<version>1.0.0</version>
<type>String</type>
<required>true</required>
<description>
Sets the absolute or relative path from the module's directory
of the file to be included in the assembly.
</description>
</field>
<field>
<name>outputDirectory</name>
<version>1.0.0</version>
<type>String</type>
<required>false</required>
<description>
Sets the output directory relative to the root
of the root directory of the assembly. For example,
"log" will put the specified files in the log directory.
</description>
</field>
<field>
<name>destName</name>
<version>1.0.0</version>
<type>String</type>
<description>
Sets the destination filename in the outputDirectory.
Default is the same name as the source's file.
</description>
</field>
<field>
<name>fileMode</name>
<version>1.0.0</version>
<type>String</type>
<defaultValue>0644</defaultValue>
<description>
<![CDATA[
Similar to a UNIX permission, sets the file mode of the files included.
Format: (User)(Group)(Other) where each component is a sum of Read = 4,
Write = 2, and Execute = 1. For example, the default value of 0644
translates to User read-write, Group and Other read-only.
<a href="http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html">(more on unix-style permissions)</a>
]]>
</description>
</field>
<field>
<name>lineEnding</name>
<version>1.0.0</version>
<type>String</type>
<description>
<![CDATA[
Sets the line-endings of the files in this file.
Valid values are:
<ul>
<li><b>"keep"</b> - Preserve all line endings</li>
<li><b>"unix"</b> - Use Unix-style line endings</li>
<li><b>"lf"</b> - Use a single line-feed line endings</li>
<li><b>"dos"</b> - Use DOS-style line endings</li>
<li><b>"crlf"</b> - Use Carraige-return, line-feed line endings</li>
</ul>
]]>
</description>
</field>
<field>
<name>filtered</name>
<version>1.0.0</version>
<type>boolean</type>
<description>
Sets whether to determine if the file is filtered.
</description>
</field>
</fields>
</class>
<class>
<name>DependencySet</name>
<version>1.0.0</version>
<superClass>SetBase</superClass>
<description>
A dependencySet allows inclusion and exclusion of project dependencies
in the assembly.
</description>
<fields>
<field>
<name>outputFileNameMapping</name>
<version>1.0.0</version>
<type>String</type>
<defaultValue>${artifactId}-${version}.${extension}</defaultValue>
<description>
Sets the mapping pattern for all dependencies included in this
assembly. Default is ${artifactId}-${version}.${extension}.
</description>
</field>
<field>
<name>unpack</name>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
If set to true, this property will unpack all dependencies
into the specified output directory. When set to false
dependencies will be includes as archives (jars).
Default value is false.
</description>
</field>
<field>
<name>scope</name>
<version>1.0.0</version>
<type>String</type>
<defaultValue>runtime</defaultValue>
<required>true</required>
<description>
Sets the dependency scope for this dependencySet.
Default scope value is "runtime".
</description>
</field>
</fields>
</class>
<class>
<name>Repository</name>
<version>1.0.0</version>
<superClass>SetBase</superClass>
<description>Defines a Maven repository to be included in the assembly.</description>
<fields>
<field>
<name>includeMetadata</name>
<version>1.0.0</version>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
If set to true, this property will trigger the creation of repository
metadata which will allow the repository to be used as a functional remote
repository.
</description>
</field>
<field>
<name>groupVersionAlignments</name>
<version>1.0.0</version>
<description>Align a group to a version or an individual artifact.</description>
<association>
<type>GroupVersionAlignment</type>
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>scope</name>
<version>1.0.0</version>
<type>String</type>
<defaultValue>runtime</defaultValue>
<required>true</required>
<description>
Specifies the scope for artifacts included in this repository.
Default scope value is "runtime".
</description>
</field>
</fields>
</class>
<class>
<name>GroupVersionAlignment</name>
<version>1.0.0</version>
<description>Defines a Maven repository to be included in the assembly.</description>
<fields>
<field>
<name>id</name>
<version>1.0.0</version>
<type>String</type>
<description>The groupId for which you want to align the versions.</description>
</field>
<field>
<name>version</name>
<version>1.0.0</version>
<type>String</type>
<description>The version you want to align this group to.</description>
</field>
<field>
<name>excludes</name>
<version>1.0.0</version>
<description>Artifact Ids of the artifacts you want excluded from version alignment.</description>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
</classes>
</model>