<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.1 at 2017-06-12 
 | 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="20170612" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Sling Maven Plugin for Compiling JSP Sources into Bundles &#x2013; Project Information</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 Maven Plugin for Compiling JSP Sources into Bundles</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: 2017-06-12<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.1.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 class="nav-header">Project Documentation</li>
    <li class="active"><a href="#"><span class="icon-chevron-down"></span>Project Information</a>

      <ul class="nav nav-list">
    <li><a href="dependencies.html" title="Dependencies"><span class="none"></span>Dependencies</a>  </li>
    <li><a href="dependency-info.html" title="Dependency Information"><span class="none"></span>Dependency Information</a>  </li>
    <li><a href="dependency-management.html" title="Dependency Management"><span class="none"></span>Dependency Management</a>  </li>
    <li><a href="distribution-management.html" title="Distribution Management"><span class="none"></span>Distribution Management</a>  </li>
    <li><a href="index.html" title="About"><span class="none"></span>About</a>  </li>
    <li><a href="issue-tracking.html" title="Issue Management"><span class="none"></span>Issue Management</a>  </li>
    <li><a href="license.html" title="Licenses"><span class="none"></span>Licenses</a>  </li>
    <li><a href="mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="plugin-management.html" title="Plugin Management"><span class="none"></span>Plugin Management</a>  </li>
    <li><a href="plugins.html" title="Plugins"><span class="none"></span>Plugins</a>  </li>
    <li><a href="team-list.html" title="Team"><span class="none"></span>Team</a>  </li>
    <li><a href="source-repository.html" title="Source Code Management"><span class="none"></span>Source Code Management</a>  </li>
    <li><a href="project-summary.html" title="Summary"><span class="none"></span>Summary</a>  </li>
      </ul>
  </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="Project_Information"></a>Project Information</h2>
<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p>
<div class="section">
<h3><a name="Overview"></a>Overview</h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Document</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="dependencies.html">Dependencies</a></td>
<td>This document lists the project's dependencies and provides information on each dependency.</td></tr>
<tr class="a">
<td><a href="dependency-info.html">Dependency Information</a></td>
<td>This document describes how to to include this project as a dependency using various dependency management tools.</td></tr>
<tr class="b">
<td><a href="dependency-management.html">Dependency Management</a></td>
<td>This document lists the dependencies that are defined through dependencyManagement.</td></tr>
<tr class="a">
<td><a href="distribution-management.html">Distribution Management</a></td>
<td>This document provides informations on the distribution management of this project.</td></tr>
<tr class="b">
<td><a href="index.html">About</a></td>
<td>Maven Plugin compiling JSPs</td></tr>
<tr class="a">
<td><a href="issue-tracking.html">Issue Management</a></td>
<td>This document provides information on the issue management system used in this project.</td></tr>
<tr class="b">
<td><a href="license.html">Licenses</a></td>
<td>This document lists the project license(s).</td></tr>
<tr class="a">
<td><a href="mail-lists.html">Mailing Lists</a></td>
<td>This document provides subscription and archive information for this project's mailing lists.</td></tr>
<tr class="b">
<td><a href="plugin-management.html">Plugin Management</a></td>
<td>This document lists the plugins that are defined through pluginManagement.</td></tr>
<tr class="a">
<td><a href="plugins.html">Plugins</a></td>
<td>This document lists the build plugins and the report plugins used by this project.</td></tr>
<tr class="b">
<td><a href="team-list.html">Team</a></td>
<td>This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr>
<tr class="a">
<td><a href="source-repository.html">Source Code Management</a></td>
<td>This document lists ways to access the online source repository.</td></tr>
<tr class="b">
<td><a href="project-summary.html">Summary</a></td>
<td>This document lists other related information of this project</td></tr></table></div></div>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2007&#x2013;2017
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>