<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 at 2020-06-22 
 | 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="20200622" />
    <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: 2020-06-22<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.0.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:2.0.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>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><tt><a href="#allowedExpressionOptions">&lt;allowedExpressionOptions&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#excludes">&lt;excludes&gt;</a></tt></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><tt><a href="#failOnErrors">&lt;failOnErrors&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>2.0.0</tt></td>
            
<td>If set to &quot;false&quot; it will not fail the build on compiler errors,
however the errors will still be logged.<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>htl.failOnErrors</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#failOnWarnings">&lt;failOnWarnings&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#generateJavaClasses">&lt;generateJavaClasses&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#generatedJavaClassesDirectory">&lt;generatedJavaClassesDirectory&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#generatedJavaClassesPrefix">&lt;generatedJavaClassesPrefix&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#ignoreImports">&lt;ignoreImports&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#includes">&lt;includes&gt;</a></tt></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="a">
            
<td><tt><a href="#skip">&lt;skip&gt;</a></tt></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>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#sourceDirectory">&lt;sourceDirectory&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>1.0.0</tt></td>
            
<td>Defines the root folder where this Mojo expects to find HTL scripts
to validate. The default value has been changed from
<tt>${project.build.sourceDirectory</tt>} to
<tt>${project.build.scriptSourceDirectory</tt>} in version
2.0.0.<br /><b>Default value is</b>: <tt>${project.build.scriptSourceDirectory}</tt>.<br /><b>User property is</b>: <tt>htl.sourceDirectory</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="a.3CallowedExpressionOptions.3E"></a><b><a name="allowedExpressionOptions">&lt;allowedExpressionOptions&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3Cexcludes.3E"></a><b><a name="excludes">&lt;excludes&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3CfailOnErrors.3E"></a><b><a name="failOnErrors">&lt;failOnErrors&gt;</a></b></h4>
        
<div>If set to &quot;false&quot; it will not fail the build on compiler errors,
however the errors will still be logged.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>2.0.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>htl.failOnErrors</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CfailOnWarnings.3E"></a><b><a name="failOnWarnings">&lt;failOnWarnings&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3CgenerateJavaClasses.3E"></a><b><a name="generateJavaClasses">&lt;generateJavaClasses&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3CgeneratedJavaClassesDirectory.3E"></a><b><a name="generatedJavaClassesDirectory">&lt;generatedJavaClassesDirectory&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3CgeneratedJavaClassesPrefix.3E"></a><b><a name="generatedJavaClassesPrefix">&lt;generatedJavaClassesPrefix&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3CignoreImports.3E"></a><b><a name="ignoreImports">&lt;ignoreImports&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3Cincludes.3E"></a><b><a name="includes">&lt;includes&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3Cskip.3E"></a><b><a name="skip">&lt;skip&gt;</a></b></h4>
        
<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 /></div>
<div class="section">
<h4><a name="a.3CsourceDirectory.3E"></a><b><a name="sourceDirectory">&lt;sourceDirectory&gt;</a></b></h4>
        
<div>Defines the root folder where this Mojo expects to find HTL scripts
to validate. The default value has been changed from
<tt>${project.build.sourceDirectory</tt>} to
<tt>${project.build.scriptSourceDirectory</tt>} in version
2.0.0.</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.scriptSourceDirectory}</tt></li>
        </ul>
      </div></div>
    </div>
  

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