<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2014-07-14
 | 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="20140714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Tycho POM Generator Plugin (Incubation) - 
    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: 2014-07-14</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 0.21.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="../BuildProperties.html" title="Build Properties">
          <i class="none"></i>
        Build Properties</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>
                  
      <li>
    
                          <a href="../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin">
          <i class="none"></i>
        POM Generator 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.21.0:generate-poms</p>
      
<p><b>Description</b>:</p>
      
<div>Traverse the current directory to find eclipse-plugin/bundle,
feature, update site (site.xml) or p2 repository (category.xml)
projects and generate corresponding pom.xml's. This goal is
intended to be used by existing projects for generating quick-start
pom.xml's when converting their build to Tycho. The generated
pom.xml's are only intended as a starting point and will most
probably require manual refinement. Note that this goal is not
intended for automatic pom.xml generation during build.</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>The base directory which will be traversed recursively when
searching for projects.<br /><b>Default value is</b>: <tt>${basedir}</tt>.<br /><b>User property 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>.<br /><b>User property is</b>: <tt>aggregator</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>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#extraDirs">extraDirs</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Additional directories to be traversed recursively when searching
for projects.<br /><b>User property is</b>: <tt>extraDirs</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#groupId">groupId</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Maven groupId to be used in the generated pom.xml files.<br /><b>User property is</b>: <tt>groupId</tt>.</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 /><b>User property is</b>: <tt>rootProjects</tt>.</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>.<br /><b>User property is</b>: <tt>templatesDir</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>.<br /><b>User property is</b>: <tt>testSuffix</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 /><b>User property is</b>: <tt>testSuite</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#version">version</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Maven version to be used in the generated pom.xml files (applies to
parent pom and eclipse-repository/eclipse-update-site only).<br /><b>Default value is</b>: <tt>0.0.1-SNAPSHOT</tt>.<br /><b>User property is</b>: <tt>version</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>User Property</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>The base directory which will be traversed recursively when
searching for projects.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</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>Additional directories to be traversed recursively when searching
for projects.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>extraDirs</tt></li>
        </ul><hr />
<p><b><a name="groupId">groupId</a>:</b></p>
        
<div>Maven groupId to be used in the generated pom.xml files.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</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>User Property</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>User Property</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>User Property</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>User Property</b>: <tt>testSuite</tt></li>
        </ul><hr />
<p><b><a name="version">version</a>:</b></p>
        
<div>Maven version to be used in the generated pom.xml files (applies to
parent pom and eclipse-repository/eclipse-update-site only).</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</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-2014
                        <a href="http://www.eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

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