<!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>
    tycho-pomgenerator:generate-poms</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 POM Generator 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>tycho-pomgenerator:generate-poms<a name="tycho-pomgenerator:generate-poms"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.eclipse.tycho:tycho-pomgenerator-plugin:0.17.0:generate-poms</p>
      <p><b>Description</b>:</p>
      <div>(no description)</div>
      <p><b>Attributes</b>:</p>
      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></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="#baseDir">baseDir</a></b></td>
            <td><tt>File</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /><b>Default value is</b>: <tt>${basedir}</tt>.</td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></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="#aggregator">aggregator</a></b></td>
            <td><tt>boolean</tt></td>
            <td><tt>-</tt></td>
            <td>If true (the default), additional aggregator poma.xml pom file will
be generated for update site projects. This poma.xml file can be
used to build update site and all its dependencies.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          <tr class="a">
            <td><b><a href="#executionEnvironment">executionEnvironment</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /><b>Default value is</b>: <tt>J2SE-1.5</tt>.</td>
          </tr>
          <tr class="b">
            <td><b><a href="#extraDirs">extraDirs</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#groupId">groupId</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#rootProjects">rootProjects</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Comma separated list of root project folders. If specified,
generated pom.xml files will only include root projects and
projects directly and indirectly referenced by the root projects.<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#templatesDir">templatesDir</a></b></td>
            <td><tt>File</tt></td>
            <td><tt>-</tt></td>
            <td>Location of directory with template pom.xml file. pom.xml templates
will be looked at this directory first, default templates will be
used if template directory and the template itself does not exist.
See src/main/resources/templates for the list of supported template
files.<br /><b>Default value is</b>: <tt>${basedir}/pom-templates</tt>.</td>
          </tr>
          <tr class="b">
            <td><b><a href="#testSuffix">testSuffix</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Suffix used to determine test bundles to add to update site
aggregator pom.<br /><b>Default value is</b>: <tt>.tests</tt>.</td>
          </tr>
          <tr class="a">
            <td><b><a href="#testSuite">testSuite</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Bundle-SymbolicName of the test suite, a special bundle that knows
how to locate and execute all relevant tests.<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#version">version</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /><b>Default value is</b>: <tt>0.0.1-SNAPSHOT</tt>.</td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
        <p><b><a name="aggregator">aggregator</a>:</b></p>
        <div>If true (the default), additional aggregator poma.xml pom file will
be generated for update site projects. This poma.xml file can be
used to build update site and all its dependencies.</div>
        <ul>
          <li><b>Type</b>: <tt>boolean</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${aggregator}</tt></li>
          <li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /><p><b><a name="baseDir">baseDir</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>java.io.File</tt></li>
          <li><b>Required</b>: <tt>Yes</tt></li>
          <li><b>Expression</b>: <tt>${baseDir}</tt></li>
          <li><b>Default</b>: <tt>${basedir}</tt></li>
        </ul><hr /><p><b><a name="executionEnvironment">executionEnvironment</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Default</b>: <tt>J2SE-1.5</tt></li>
        </ul><hr /><p><b><a name="extraDirs">extraDirs</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${extraDirs}</tt></li>
        </ul><hr /><p><b><a name="groupId">groupId</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${groupId}</tt></li>
        </ul><hr /><p><b><a name="rootProjects">rootProjects</a>:</b></p>
        <div>Comma separated list of root project folders. If specified,
generated pom.xml files will only include root projects and
projects directly and indirectly referenced by the root projects.</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${rootProjects}</tt></li>
        </ul><hr /><p><b><a name="templatesDir">templatesDir</a>:</b></p>
        <div>Location of directory with template pom.xml file. pom.xml templates
will be looked at this directory first, default templates will be
used if template directory and the template itself does not exist.
See src/main/resources/templates for the list of supported template
files.</div>
        <ul>
          <li><b>Type</b>: <tt>java.io.File</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${templatesDir}</tt></li>
          <li><b>Default</b>: <tt>${basedir}/pom-templates</tt></li>
        </ul><hr /><p><b><a name="testSuffix">testSuffix</a>:</b></p>
        <div>Suffix used to determine test bundles to add to update site
aggregator pom.</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${testSuffix}</tt></li>
          <li><b>Default</b>: <tt>.tests</tt></li>
        </ul><hr /><p><b><a name="testSuite">testSuite</a>:</b></p>
        <div>Bundle-SymbolicName of the test suite, a special bundle that knows
how to locate and execute all relevant tests.</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${testSuite}</tt></li>
        </ul><hr /><p><b><a name="version">version</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${version}</tt></li>
          <li><b>Default</b>: <tt>0.0.1-SNAPSHOT</tt></li>
        </ul>
      </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>
