<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 at 2019-09-01 
 | 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="20190901" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Sling HTL Maven Plugin &#x2013; htl:validate</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"><div id="bannerLeft"><h2>Apache Sling HTL 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-09-01<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.3.0-1.4.0</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="Introduction"><span class="none"></span>Introduction</a>  </li>
    <li><a href="plugin-info.html" title="Goals"><span class="none"></span>Goals</a>  </li>
    <li><a href="usage.html" title="Usage"><span class="none"></span>Usage</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>
          <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="htl:validate"></a>htl:validate</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.sling:htl-maven-plugin:1.3.0-1.4.0:validate</p>
      
<p><b>Description</b>:</p>
      
<div>Validates HTL scripts.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>The goal is thread-safe and supports parallel builds.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>compile</tt>.</li>
      </ul>
      
<div class="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><b><a href="#allowedExpressionOptions">allowedExpressionOptions</a></b></td>
            
<td><tt>Set</tt></td>
            
<td><tt>1.3.0</tt></td>
            
<td>Adds the provided options to the list of known expression options,
so that the compiler doesn't log any warnings about them.<br /><b>User property is</b>: <tt>htl.allowedExpressionOptions</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#excludes">excludes</a></b></td>
            
<td><tt>String[]</tt></td>
            
<td><tt>1.0.0</tt></td>
            
<td>List of files to exclude. Specified as fileset patterns which are
relative to the input directory whose contents will be scanned (see
the sourceDirectory configuration option).<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#failOnWarnings">failOnWarnings</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.0.0</tt></td>
            
<td>If set to &quot;true&quot; it will fail the build on compiler warnings.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>htl.failOnWarnings</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#generateJavaClasses">generateJavaClasses</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>If set to &quot;true&quot; it will generate the Java classes resulted from
transpiling the HTL scripts to Java. The generated classes will be
stored in the folder identified by the
<tt>generatedJavaClassesDirectory</tt> parameter.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>htl.generateJavaClasses</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#generatedJavaClassesDirectory">generatedJavaClassesDirectory</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>Defines the folder where the generated Java classes resulted from
transpiling the project's HTL scripts will be stored. This folder
will be added to the list of source folders for this project.<br /><b>Default value is</b>: <tt>${project.build.directory}/generated-sources/htl</tt>.<br /><b>User property is</b>: <tt>htl.generatedJavaClassesDirectory</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#generatedJavaClassesPrefix">generatedJavaClassesPrefix</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>1.2.0-1.4.0</tt></td>
            
<td>Defines the package prefix under which the HTL compilers will
generate the Java classes. By default the plugin doesn't provide
any prefix.<br /><b>User property is</b>: <tt>htl.generatedJavaClassesPrefix</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#ignoreImports">ignoreImports</a></b></td>
            
<td><tt>Set</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>Defines a list of Java packages that should be ignored when
generating the import statements for the Java classes resulted from
transpiling the project's HTL scripts. Subpackages of these
packages will also be part automatically of the ignore list.<br /><b>User property is</b>: <tt>htl.ignoreImports</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#includes">includes</a></b></td>
            
<td><tt>String[]</tt></td>
            
<td><tt>1.0.0</tt></td>
            
<td>List of files to include. Specified as fileset patterns which are
relative to the input directory whose contents will be scanned (see
the sourceDirectory configuration option).<br /><b>Default value is</b>: <tt>**/*.html</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#skip">skip</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.0.2</tt></td>
            
<td>If set to &quot;true&quot; the validation will be skipped.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>htl.skip</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#sourceDirectory">sourceDirectory</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>1.0.0</tt></td>
            
<td>Defines the root folder where this Mojo expects to find Sightly
scripts to validate.<br /><b>Default value is</b>: <tt>${project.build.sourceDirectory}</tt>.<br /><b>User property is</b>: <tt>htl.sourceDirectory</tt>.</td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="allowedExpressionOptions">allowedExpressionOptions</a>:</b></p>
        
<div>Adds the provided options to the list of known expression options,
so that the compiler doesn't log any warnings about them.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.Set</tt></li>
          
<li><b>Since</b>: <tt>1.3.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.allowedExpressionOptions</tt></li>
        </ul><hr />
<p><b><a name="excludes">excludes</a>:</b></p>
        
<div>List of files to exclude. Specified as fileset patterns which are
relative to the input directory whose contents will be scanned (see
the sourceDirectory configuration option).</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String[]</tt></li>
          
<li><b>Since</b>: <tt>1.0.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="failOnWarnings">failOnWarnings</a>:</b></p>
        
<div>If set to &quot;true&quot; it will fail the build on compiler warnings.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.0.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.failOnWarnings</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generateJavaClasses">generateJavaClasses</a>:</b></p>
        
<div>If set to &quot;true&quot; it will generate the Java classes resulted from
transpiling the HTL scripts to Java. The generated classes will be
stored in the folder identified by the
<tt>generatedJavaClassesDirectory</tt> parameter.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.generateJavaClasses</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generatedJavaClassesDirectory">generatedJavaClassesDirectory</a>:</b></p>
        
<div>Defines the folder where the generated Java classes resulted from
transpiling the project's HTL scripts will be stored. This folder
will be added to the list of source folders for this project.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.generatedJavaClassesDirectory</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/generated-sources/htl</tt></li>
        </ul><hr />
<p><b><a name="generatedJavaClassesPrefix">generatedJavaClassesPrefix</a>:</b></p>
        
<div>Defines the package prefix under which the HTL compilers will
generate the Java classes. By default the plugin doesn't provide
any prefix.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Since</b>: <tt>1.2.0-1.4.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.generatedJavaClassesPrefix</tt></li>
        </ul><hr />
<p><b><a name="ignoreImports">ignoreImports</a>:</b></p>
        
<div>Defines a list of Java packages that should be ignored when
generating the import statements for the Java classes resulted from
transpiling the project's HTL scripts. Subpackages of these
packages will also be part automatically of the ignore list.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.Set</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.ignoreImports</tt></li>
        </ul><hr />
<p><b><a name="includes">includes</a>:</b></p>
        
<div>List of files to include. Specified as fileset patterns which are
relative to the input directory whose contents will be scanned (see
the sourceDirectory configuration option).</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String[]</tt></li>
          
<li><b>Since</b>: <tt>1.0.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>**/*.html</tt></li>
        </ul><hr />
<p><b><a name="skip">skip</a>:</b></p>
        
<div>If set to &quot;true&quot; the validation will be skipped.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.0.2</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.skip</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="sourceDirectory">sourceDirectory</a>:</b></p>
        
<div>Defines the root folder where this Mojo expects to find Sightly
scripts to validate.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>1.0.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.sourceDirectory</tt></li>
          
<li><b>Default</b>: <tt>${project.build.sourceDirectory}</tt></li>
        </ul>
      </div>
    </div>
  

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