<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from target/generated-site/xdoc/help-mojo.xml
 | Rendered using Apache Maven Fluido Skin 1.8
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
    <title>Apache Accumulo Maven Plugin &#x2013; accumulo2:help</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.8.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h2>Apache Accumulo Maven Plugin</h2>
</div>
</div>
          <div class="pull-right"></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2019-08-07<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.0.0</li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">Overview</li>
    <li><a href="../" title="Accumulo Home"><span class="none"></span>Accumulo Home</a></li>
    <li><a href="index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="plugin-info.html" title="Goals"><span class="none"></span>Goals</a></li>
   <li class="nav-header">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
            <hr />
            <div id="poweredBy">
              <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>
        </header>
        <main id="bodyColumn"  class="span10" >

  
    <section>
<h2><a name="accumulo2:help"></a>accumulo2:help</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.accumulo:accumulo2-maven-plugin:1.0.0:help</p>
      
<p><b>Description</b>:</p>
      
<div>Display help information on accumulo2-maven-plugin.<br />
Call mvn accumulo2:help -Ddetail=true
-Dgoal=&lt;goal-name&gt; to display parameter details.</div>
      
<p><b>Attributes</b>:</p>
      <section>
<h3><a name="Optional_Parameters"></a>Optional Parameters</h3>
        
<table class="table table-striped" border="0">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><a href="#detail">&lt;detail&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>If true, display all settable properties for each
goal.<br /><b>Default value is</b>: false.<br /><b>User property is</b>: detail.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#goal">&lt;goal&gt;</a></td>
            
<td>String</td>
            
<td>-</td>
            
<td>The name of the goal for which to show help. If unspecified, all
goals will be displayed.<br /><b>User property is</b>: goal.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#indentSize">&lt;indentSize&gt;</a></td>
            
<td>int</td>
            
<td>-</td>
            
<td>The number of spaces per indentation level, should be positive.<br /><b>Default value is</b>: 2.<br /><b>User property is</b>: indentSize.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#lineLength">&lt;lineLength&gt;</a></td>
            
<td>int</td>
            
<td>-</td>
            
<td>The maximum length of a display line, should be positive.<br /><b>Default value is</b>: 80.<br /><b>User property is</b>: lineLength.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <section>
<h4><a name="a.3Cdetail.3E"></a><b><a name="detail">&lt;detail&gt;</a></b></h4>
        
<div>If true, display all settable properties for each
goal.</div>
        
<ul>
          
<li><b>Type</b>: boolean</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: detail</li>
          
<li><b>Default</b>: false</li>
        </ul><hr /></section><section>
<h4><a name="a.3Cgoal.3E"></a><b><a name="goal">&lt;goal&gt;</a></b></h4>
        
<div>The name of the goal for which to show help. If unspecified, all
goals will be displayed.</div>
        
<ul>
          
<li><b>Type</b>: java.lang.String</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: goal</li>
        </ul><hr /></section><section>
<h4><a name="a.3CindentSize.3E"></a><b><a name="indentSize">&lt;indentSize&gt;</a></b></h4>
        
<div>The number of spaces per indentation level, should be positive.</div>
        
<ul>
          
<li><b>Type</b>: int</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: indentSize</li>
          
<li><b>Default</b>: 2</li>
        </ul><hr /></section><section>
<h4><a name="a.3ClineLength.3E"></a><b><a name="lineLength">&lt;lineLength&gt;</a></b></h4>
        
<div>The maximum length of a display line, should be positive.</div>
        
<ul>
          
<li><b>Type</b>: int</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: lineLength</li>
          
<li><b>Default</b>: 80</li>
        </ul>
      </section></section>
    </section>
  

        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &#169;      2013&#x2013;2019<a href="https://www.apache.org">The Apache Software Foundation</a>.
.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
