<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at May 29, 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="20130529" />
    <meta http-equiv="Content-Language" content="en" />
    <title>
    tycho-version-bump:update-product</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 Version Bump 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-05-29</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 0.18.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 Extras</li>
                                
      <li>
    
                          <a href="../index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin">
          <i class="none"></i>
        P2 Extras Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../target-platform-validation-plugin/plugin-info.html" title="Target Platform Validation Plugin">
          <i class="none"></i>
        Target Platform Validation Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin">
          <i class="none"></i>
        Eclipserun Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-source-feature-plugin/plugin-info.html" title="Source Feature Generation Plugin">
          <i class="none"></i>
        Source Feature Generation Plugin</a>
            </li>
                                                                                
      <li>
    
                          <a href="../tycho-pack200/index.html" title="Pack200 Plugins">
          <i class="icon-chevron-down"></i>
        Pack200 Plugins</a>
                    <ul class="nav nav-list">
                      
      <li>
    
                          <a href="../tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin">
          <i class="none"></i>
        Normalization Plugin</a>
            </li>
                      
      <li>
    
                          <a href="../tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin">
          <i class="none"></i>
        Pack Plugin</a>
            </li>
              </ul>
        </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-version-bump:update-product<a name="tycho-version-bump:update-product"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.eclipse.tycho.extras:tycho-version-bump-plugin:0.18.0:update-product</p>
      <p><b>Description</b>:</p>
      <div>Quick&amp;dirty way to update .product file to use latest versions
of IUs available from specified metadata repositories.</div>
      <p><b>Attributes</b>:</p>
      <ul>
        <li>Requires a Maven project to be executed.</li>
      </ul>
      <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="#productFile">productFile</a></b></td>
            <td><tt>File</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#project">project</a></b></td>
            <td><tt>MavenProject</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /></td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
        <p><b><a name="productFile">productFile</a>:</b></p>
        <div>(no description)</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>${project.artifactId}.product</tt></li>
        </ul><hr /><p><b><a name="project">project</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>org.apache.maven.project.MavenProject</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${project}</tt></li>
        </ul>
      </div>
    </div>
  

                  </div>
            </div>
          </div>

    <hr/>

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

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