<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2017-05-06 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<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="20170506" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Maven2 AAR Plug-in Guide</title>
    <link rel="stylesheet" href="../../css/apache-maven-fluido-1.6.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.6.min.js"></script>
<meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="" />      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href="../.././" id="bannerRight"><img src="../../images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2017-05-06<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.5<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="active ">Maven2 AAR Plug-in Guide</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">Axis2/Java</li>
    <li><a href="../../index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="../../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="../../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="../../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="../../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="../../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="../../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="../../release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a>  </li>
    <li><a href="../../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a>  </li>
    <li><a href="../../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a>  </li>
    <li><a href="../../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a>  </li>
    <li><a href="../../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a>  </li>
      </ul>
  </li>
    <li><a href="../../modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="../../tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="../../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li><a href="../../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a>  </li>
    <li><a href="../../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="../../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="../../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="../../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="../../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li><a href="../../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a>  </li>
    <li><a href="../../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="../../faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="../../articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="../../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="../../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="../../overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li><a href="../../svn.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a>  </li>
    <li><a href="../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="../../release-process.html" title="Release Process"><span class="none"></span>Release Process</a>  </li>
    <li><a href="../../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="../../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="../../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</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" >
<html xmlns="http://www.w3.org/1999/xhtml">


<h1>Maven2 AAR Plug-in Guide</h1>

<div class="section">
<h2><a name="Introduction"></a>Introduction</h2>

<p>This plugin generates an Axis 2 service file (AAR file).</p>

<p><a href="../index.html">[Download Plugin Tool]</a></p>

<div class="section">
<h2><a name="Goals"></a>Goals</h2>

<p>The AAR plugin allows the packaging of an Axis 2 service aar in
3 different modes:</p>

<ol style="list-style-type: decimal">

<li><b>axis2-aar:aar</b>: generates the aar artifact</li>

<li><b>axis2-aar:inplace</b> : package the aar in the source tree</li>

<li><b>axis2-aar:exploded</b> : package an exploded aar application</li>
</ol>

<p>Each mode is materialized by a goal. For instance, to generate
an exploded aar from the current project, one would type</p>

<div>
<pre>
mvn axis2-aar:exploded
</pre></div>

<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="0" class="table table-striped">
<tbody>

<tr class="a">

<td><b>Parameter Name</b></td>

<td><b>Default Value</b></td>

<td><b>Description</b></td>
</tr>

<tr class="b">

<td>aarDirectory</td>

<td>${project.build.directory}/aar</td>

<td>Directory where the aar file is built</td>
</tr>

<tr class="a">

<td>classesDirectory</td>

<td>${project.build.outputDirectory}</td>

<td>Directory with compiled classes and resources</td>
</tr>

<tr class="b">

<td>fileSets</td>

<td></td>

<td>Additional file sets, which are being added to the archive. See
&quot;<a href="#file_sets">File Sets</a>&quot; below for an example</td>
</tr>

<tr class="a">

<td>servicesXmlFile</td>

<td></td>

<td>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>wsdlFile</td>

<td></td>

<td>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>wsdlFileName</td>

<td>service.wsdl</td>

<td>Name, to which the WSDL file should be mapped</td>
</tr>
</tbody>
</table>

<div class="section">
<h3><a name="The_aar_Goal"></a>The aar Goal</h3>

<p>The aar goal allows the following additional parameters:</p>

<table border="0" class="table table-striped">
<tbody>

<tr class="a">

<td><b>Parameter Name</b></td>

<td><b>Default Value</b></td>

<td><b>Description</b></td>
</tr>

<tr class="b">

<td>outputDirectory</td>

<td>${project.build.directory}</td>

<td>Directory where to generate the AAR file</td>
</tr>

<tr class="a">

<td>aarName</td>

<td>${project.build.finalName}</td>

<td>The generated AAR files name</td>
</tr>

<tr class="b">

<td>archive</td>

<td></td>

<td>A Maven archive configuration. This allows, for example, to
configure the MANIFEST.MF file</td>
</tr>

<tr class="a">

<td>classifier</td>

<td></td>

<td>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>primaryArtifact</td>

<td>true</td>

<td>Setting this property to false disables installation or
deployment of the artifact as the projects primary artifact</td>
</tr>
</tbody>
</table>
<a name="file_sets" id="file_sets"></a>
</div>
<div class="section">
<h3><a name="File_Sets"></a>File Sets</h3>

<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="0" class="table table-striped">
<tbody>

<tr class="a">

<td><b>Parameter Name</b></td>

<td><b>Description</b></td>
</tr>

<tr class="b">

<td>directory</td>

<td>The directory, from which to read the file set. This parameter
is required</td>
</tr>

<tr class="a">

<td>outputDirectory</td>

<td>The target directory within the AAR file. Defaults to the AAR
files root directory</td>
</tr>

<tr class="b">

<td>includes</td>

<td>Configures the set of files, which shall be included into the
AAR file. Defaults to **/*</td>
</tr>

<tr class="a">

<td>excludes</td>

<td>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>skipDefaultExcludes</td>

<td>If this parameter is set to true, then no default excludes are
being used</td>
</tr>
</tbody>
</table>
</div>
</html>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2017
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>