<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2017-07-30 
 | 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="20170730" />
    <meta http-equiv="Content-Language" content="en" />
    <title>axis2-repo-maven-plugin &#x2013; axis2-repo:create-test-repository</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>
      </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-07-30<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.6<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="index.html" title="axis2-repo-maven-plugin">axis2-repo-maven-plugin</a><span class="divider">/</span></li>
    <li class="active ">axis2-repo:create-test-repository</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="index.html" title="About"><span class="none"></span>About</a>  </li>
    <li><a href="plugin-info.html" title="Plugin Documentation"><span class="icon-chevron-down"></span>Plugin Documentation</a>
      <ul class="nav nav-list">
    <li><a href="create-repository-mojo.html" title="create-repository"><span class="none"></span>create-repository</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>create-test-repository</a>
  </li>
      </ul>
  </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="axis2-repo:create-test-repository"></a>axis2-repo:create-test-repository</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.axis2:axis2-repo-maven-plugin:1.7.6:create-test-repository</p>
      
<p><b>Description</b>:</p>
      
<div>Creates an Axis2 repository from the project's dependencies in
scope test. This goal is typically used to build an Axis2
repository for use during unit tests. Note that this goal is
skipped if the <tt>maven.test.skip</tt> property is set to
<tt>true</tt>.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven 2.0 project to be executed.</li>
        
<li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
        
<li>Binds by default to the lifecycle phase: <tt>generate-test-resources</tt>.</li>
      </ul>
      
<div class="section">
<h3><a name="Optional_Parameters"></a>Optional Parameters</h3>
        
<table class="table table-striped" border="0" align="left">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><b><a href="#axis2xml">axis2xml</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The <tt>axis2.xml</tt> file to be copied into the repository.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#configurationDirectory">configurationDirectory</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The directory (relative to the repository root) where the
<tt>axis2.xml</tt> file will be copied. If this parameter is not
set, then the file will be copied into the repository root.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#generateFileLists">generateFileLists</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether the plugin should generate <tt>services.list</tt>
and <tt>modules.list</tt> files.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#includeModules">includeModules</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether modules should be deployed to the repository.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#includeServices">includeServices</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether services should be deployed to the repository.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#modules">modules</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Comma separated list of modules (by artifactId) to include in the
repository.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#modulesDirectory">modulesDirectory</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The directory (relative to the repository root) where MAR files are
copied. This should be set to the same value as the
<tt>ModulesDirectory</tt> property in <tt>axis2.xml</tt>.<br /><b>Default value is</b>: <tt>modules</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#outputDirectory">outputDirectory</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The output directory where the repository will be created.<br /><b>Default value is</b>: <tt>${project.build.directory}/test-repository</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#services">services</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Comma separated list of services (by artifactId) to include in the
repository.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#servicesDirectory">servicesDirectory</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The directory (relative to the repository root) where AAR files are
copied. This should be set to the same value as the
<tt>ServicesDirectory</tt> property in <tt>axis2.xml</tt>.<br /><b>Default value is</b>: <tt>services</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#stripModuleVersion">stripModuleVersion</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether the plugin strips version numbers from MAR files.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#stripServiceVersion">stripServiceVersion</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether the plugin strips version numbers from AAR files.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#useDependencies">useDependencies</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether the plugin should scan the project dependencies
for AAR and MAR artifacts.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#useModules">useModules</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specifies whether the plugin should scan Maven modules for AAR and
MAR artifacts. This parameter only has an effect for multimodule
projects.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="axis2xml">axis2xml</a>:</b></p>
        
<div>The <tt>axis2.xml</tt> file to be copied into the repository.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="configurationDirectory">configurationDirectory</a>:</b></p>
        
<div>The directory (relative to the repository root) where the
<tt>axis2.xml</tt> file will be copied. If this parameter is not
set, then the file will be copied into the repository root.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="generateFileLists">generateFileLists</a>:</b></p>
        
<div>Specifies whether the plugin should generate <tt>services.list</tt>
and <tt>modules.list</tt> files.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="includeModules">includeModules</a>:</b></p>
        
<div>Specifies whether modules should be deployed to the repository.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="includeServices">includeServices</a>:</b></p>
        
<div>Specifies whether services should be deployed to the repository.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="modules">modules</a>:</b></p>
        
<div>Comma separated list of modules (by artifactId) to include in the
repository.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="modulesDirectory">modulesDirectory</a>:</b></p>
        
<div>The directory (relative to the repository root) where MAR files are
copied. This should be set to the same value as the
<tt>ModulesDirectory</tt> property in <tt>axis2.xml</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>modules</tt></li>
        </ul><hr />
<p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
        
<div>The output directory where the repository will be created.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/test-repository</tt></li>
        </ul><hr />
<p><b><a name="services">services</a>:</b></p>
        
<div>Comma separated list of services (by artifactId) to include in the
repository.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="servicesDirectory">servicesDirectory</a>:</b></p>
        
<div>The directory (relative to the repository root) where AAR files are
copied. This should be set to the same value as the
<tt>ServicesDirectory</tt> property in <tt>axis2.xml</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>services</tt></li>
        </ul><hr />
<p><b><a name="stripModuleVersion">stripModuleVersion</a>:</b></p>
        
<div>Specifies whether the plugin strips version numbers from MAR files.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="stripServiceVersion">stripServiceVersion</a>:</b></p>
        
<div>Specifies whether the plugin strips version numbers from AAR files.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="useDependencies">useDependencies</a>:</b></p>
        
<div>Specifies whether the plugin should scan the project dependencies
for AAR and MAR artifacts.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr />
<p><b><a name="useModules">useModules</a>:</b></p>
        
<div>Specifies whether the plugin should scan Maven modules for AAR and
MAR artifacts. This parameter only has an effect for multimodule
projects.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul>
      </div>
    </div>
  

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