<!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-p2:p2-metadata</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 p2 Metadata 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-p2:p2-metadata<a name="tycho-p2:p2-metadata"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.eclipse.tycho:tycho-p2-plugin:0.17.0:p2-metadata</p>
      <p><b>Description</b>:</p>
      <div>(no description)</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="#attachP2Metadata">attachP2Metadata</a></b></td>
            <td><tt>boolean</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          <tr class="a">
            <td><b><a href="#baselineMode">baselineMode</a></b></td>
            <td><tt>BaselineMode</tt></td>
            <td><tt>-</tt></td>
            <td>What happens when build artifact does not match baseline version.<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#baselineReplace">baselineReplace</a></b></td>
            <td><tt>BaselineReplace</tt></td>
            <td><tt>-</tt></td>
            <td>Whether to replace build artifacts with baseline version or use
reactor version.<br /><b>Default value is</b>: <tt>all</tt>.</td>
          </tr>
          <tr class="a">
            <td><b><a href="#baselineRepositories">baselineRepositories</a></b></td>
            <td><tt>List</tt></td>
            <td><tt>-</tt></td>
            <td>Baseline build repository(ies). P2 assumes that the same artifact
type, id and version represent the same artifact. If
baselineRepositories parameter is specified, this assumption is
validated and optionally enforced.<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#project">project</a></b></td>
            <td><tt>MavenProject</tt></td>
            <td><tt>-</tt></td>
            <td>(no description)<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
            <td><tt>List</tt></td>
            <td><tt>-</tt></td>
            <td>Project types which this plugin supports.<br /></td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
        <p><b><a name="attachP2Metadata">attachP2Metadata</a>:</b></p>
        <div>(no description)</div>
        <ul>
          <li><b>Type</b>: <tt>boolean</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /><p><b><a name="baselineMode">baselineMode</a>:</b></p>
        <div>What happens when build artifact does not match baseline version.</div>
        <ul>
          <li><b>Type</b>: <tt>org.eclipse.tycho.plugins.p2.BaselineMode</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${tycho.baseline}</tt></li>
        </ul><hr /><p><b><a name="baselineReplace">baselineReplace</a>:</b></p>
        <div>Whether to replace build artifacts with baseline version or use
reactor version.</div>
        <ul>
          <li><b>Type</b>: <tt>org.eclipse.tycho.plugins.p2.BaselineReplace</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${tycho.baseline.replace}</tt></li>
          <li><b>Default</b>: <tt>all</tt></li>
        </ul><hr /><p><b><a name="baselineRepositories">baselineRepositories</a>:</b></p>
        <div>Baseline build repository(ies). P2 assumes that the same artifact
type, id and version represent the same artifact. If
baselineRepositories parameter is specified, this assumption is
validated and optionally enforced.</div>
        <ul>
          <li><b>Type</b>: <tt>java.util.List</tt></li>
          <li><b>Required</b>: <tt>No</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><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
        <div>Project types which this plugin supports.</div>
        <ul>
          <li><b>Type</b>: <tt>java.util.List</tt></li>
          <li><b>Required</b>: <tt>No</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>
