<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2016-05-02 
 | Rendered using Apache Maven Fluido Skin 1.4
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20160502" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Maven Axis 2 AAR Plugin &#x2013; </title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.4.min.js"></script>

    
                  </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                    <a href="http://maven.apache.org/" id="bannerLeft">
                                                                                        <img src="http://maven.apache.org/images/apache-maven-project.png"  alt="Maven Axis 2 AAR Plugin"/>
                </a>
                      </div>
        <div class="pull-right">              <div id="bannerRight">
                                                                                        <img src="http://maven.apache.org/images/maven-small.gif" />
                </div>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                  <li id="publishDate">Last Published: 2016-05-02
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 1.7.2
                          <span class="divider">|</span>
                      </li>
                                      <li class="">
                    <a href="http://www.apache.org" class="externalLink" title="Apache">
        Apache</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../../index.html" title="Axis2/Java">
        Axis2/Java</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" title="Maven Axis 2 AAR Plugin">
        Maven Axis 2 AAR Plugin</a>
                    <span class="divider">/</span>
      </li>
        <li class="active "></li>
                
                
                    
      
                                    
    <li class="pull-right">
        <span class="divider">|</span>
                      <a href="http://maven.apache.org/maven2/" class="externalLink" title="Maven 2">
        Maven 2</a>
      </li>

  
    <li class="pull-right">
        <span class="divider">|</span>
                      <a href="http://ws.apache.org/axis2/" class="externalLink" title="Axis 2">
        Axis 2</a>
      </li>

  
    <li class="pull-right">
        <span class="divider">|</span>
                      <a href="http://ws.apache.org/" class="externalLink" title="Webservices">
        Webservices</a>
      </li>

  
    <li class="pull-right">
                      <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
      </li>

                    </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Overview</li>
                              
      <li>
  
                          <a href="introduction.html" title="Introduction">
          <span class="none"></span>
        Introduction</a>
            </li>
                
      <li>
  
                          <a href="howto.html" title="How to Use">
          <span class="none"></span>
        How to Use</a>
            </li>
                
      <li class="active">
  
            <a href="#"><span class="none"></span>Configuration</a>
          </li>
                              <li class="nav-header">Apache</li>
                              
      <li>
  
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">
          <span class="none"></span>
        License</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
          <span class="none"></span>
        Sponsorship</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <span class="none"></span>
        Thanks</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">
          <span class="none"></span>
        Security</a>
            </li>
            </ul>
                
                    
                
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span10" >
                                  
            <div class="section">
<h2><a name="Configuration"></a>Configuration</h2>
<p>All Aar plugin goals takes the following configuration parameters as input:</p>
<table border="1" class="table table-striped">
<tr class="a">
<td align="left">Parameter name</td>
<td align="left">Default value</td>
<td align="left">Description</td></tr>
<tr class="b">
<td align="left">aarDirectory</td>
<td align="left">$<a name="project.build.directory">project.build.directory</a>/aar</td>
<td align="left">Directory where the aar file is built.</td></tr>
<tr class="a">
<td align="left">classesDirectory</td>
<td align="left">$<a name="project.build.outputDirectory">project.build.outputDirectory</a></td>
<td align="left">Directory with compiled classes and resources.</td></tr>
<tr class="b">
<td align="left">fileSets</td>
<td align="left"></td>
<td align="left">Additional file sets, which are being added to the archive. See &quot;File Sets&quot; below for an example.</td></tr>
<tr class="a">
<td align="left">servicesXmlFile</td>
<td align="left"></td>
<td align="left">Location of the services.xml file. By default, it is assumed that the file is already present in classesDirectory/META-INF and no special processing is required.</td></tr>
<tr class="b">
<td align="left">wsdlFile</td>
<td align="left"></td>
<td align="left">Location of the WSDL file. By default, it is assumed that the file is already present in classesDirectory/META-INF and no special processing is required.</td></tr>
<tr class="a">
<td align="left">wsdlFileName</td>
<td align="left">service.wsdl</td>
<td align="left">Name, to which the WSDL file should be mapped.</td></tr></table></div>
<div class="section">
<h2><a name="The_aar_goal"></a>The aar goal</h2>
<p>The aar goal allows the following additional parameters:</p>
<table border="1" class="table table-striped">
<tr class="a">
<td align="left">Parameter name</td>
<td align="left">Default value</td>
<td align="left">Description</td></tr>
<tr class="b">
<td align="left">outputDirectory</td>
<td align="left">$<a name="project.build.directory">project.build.directory</a></td>
<td align="left">Directory where to generate the AAR file.</td></tr>
<tr class="a">
<td align="left">aarName</td>
<td align="left">$<a name="project.build.finalName">project.build.finalName</a></td>
<td align="left">The generated AAR files name.</td></tr>
<tr class="b">
<td align="left">archive</td>
<td align="left"></td>
<td align="left">A Maven archive configuration. This allows, for example, to configure the MANIFEST.MF file.</td></tr>
<tr class="a">
<td align="left">classifier</td>
<td align="left"></td>
<td align="left">A classifier, which should be added to the generated AAR files name. Setting this parameter has the side effect, that the artifact is treated as an attachment and not as the projects primary artifact.</td></tr>
<tr class="b">
<td align="left">primaryArtifact</td>
<td align="left">true</td>
<td align="left">Setting this property to false disables installation or deployment of the artifact as the projects primary artifact.</td></tr></table></div>
<div class="section">
<h2><a name="File_Sets"></a>File Sets</h2>
<p>Additional file sets may be configured for inclusion into the AAR file. A file set looks as follows:</p>
<div>
<pre>  &lt;fileSets&gt;
    &lt;fileSet&gt;
      &lt;directory&gt;src/aar/files&lt;/directory&gt;
      &lt;outputDirectory&gt;META-INF/docs&lt;/outputDirectory&gt;
      &lt;includes&gt;
        &lt;include&gt;**/*.html&lt;/include&gt;
      &lt;/includes&gt;
    &lt;/fileSet&gt;
    &lt;fileSet&gt;
      &lt;directory&gt;src/aar/files&lt;/directory&gt;
      &lt;outputDirectory&gt;META-INF/etc&lt;/outputDirectory&gt;
      &lt;excludes&gt;
        &lt;exclude&gt;**/*.html&lt;/exclude&gt;
      &lt;/excludes&gt;
    &lt;/fileSet&gt;
  &lt;/fileSets&gt;</pre></div>
<p>The example specifies, that the contents of the directory src/aar/files shall be added to the AAR file. HTML files will go into META-INF/docs, all other files to META-INF/etc.</p>
<p>A file set is configured through the following configuration parameters:</p>
<table border="1" class="table table-striped">
<tr class="a">
<td align="left">Parameter name</td>
<td align="left">Description</td></tr>
<tr class="b">
<td align="left">directory</td>
<td align="left">The directory, from which to read the file set. This parameter is required.</td></tr>
<tr class="a">
<td align="left">outputDirectory</td>
<td align="left">The target directory within the AAR file. Defaults to the AAR files root directory.</td></tr>
<tr class="b">
<td align="left">includes</td>
<td align="left">Configures the set of files, which shall be included into the AAR file. Defaults to **/*.</td></tr>
<tr class="a">
<td align="left">excludes</td>
<td align="left">Configures a set of files, which shall be excluded from the file set. Defaults to the Maven default excludes (**/*~, **/cvs/**/*, **/.svn/**/*, etc.)</td></tr>
<tr class="b">
<td align="left">skipDefaultExcludes</td>
<td align="left">If this parameter is set to true, then no default excludes are being used.</td></tr></table></div>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                                      <p >Copyright &copy;                    2004&#x2013;2016
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
                </div>

        
                </div>
    </footer>
        </body>
</html>