<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at Mar 15, 2013
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<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="20130315" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Generated Reports</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.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.3.0.min.js"></script>

    
            </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                <div id="bannerLeft">
                <h2>Tycho OSGi Packaging Plugin (Incubation)</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: 2013-03-15</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 0.17.0</li>
                      
                
            
      
                                              
    <li class="pull-right">              <a href="http://wiki.eclipse.org/Development_Resources/HOWTO/Incubation_Phase#.281.29_What_Is_Incubation.3F" class="externalLink" title="This content is PRELIMINARY API and still subject to change">
        This content is PRELIMINARY API and still subject to change</a>
  </li>

                        </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span3">
          <div class="well sidebar-nav">
                
            
                <ul class="nav nav-list">
                    <li class="nav-header">Tycho</li>
                                
      <li>
    
                          <a href="../index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin">
          <i class="none"></i>
        Compiler Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin">
          <i class="none"></i>
        Packaging Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-surefire/tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin">
          <i class="none"></i>
        Surefire Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin">
          <i class="none"></i>
        p2 Publisher Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin">
          <i class="none"></i>
        p2 Repository Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin">
          <i class="none"></i>
        p2 Director Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-source-plugin/plugin-info.html" title="Source Plugin">
          <i class="none"></i>
        Source Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin">
          <i class="none"></i>
        Versions Plugin</a>
            </li>
            </ul>
                
            
                
          <hr class="divider" />

           <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>
        </div>
        
                
        <div id="bodyColumn"  class="span9" >
                                  
            <div class="section"><h2>Generated Reports<a name="Generated_Reports"></a></h2><p>This document provides an overview of the various reports that are automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> . Each report is briefly described below.</p><div class="section"><h3>Overview<a name="Overview"></a></h3><table border="0" class="table table-striped"><tr class="a"><th>Document</th><th>Description</th></tr><tr class="b"><td><a href="plugin-info.html">Plugin Documentation</a></td><td>This report provides goals and parameters documentation of a plugin.</td></tr></table></div></div>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2008-2013
                        <a href="http://www.eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
            
      </div>

        
        
                </div>
    </footer>
  </body>
</html>
