<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from target/generated-site/xdoc/p2-metadata-mojo.xml at 2019-11-14
 | Rendered using Apache Maven Fluido Skin 1.8
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
    <title>Tycho p2 Metadata Plugin &#x2013; tycho-p2:p2-metadata</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.8.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h2>Tycho p2 Metadata Plugin</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: 2019-11-14<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.5.1-SNAPSHOT</li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">Tycho</li>
    <li><a href="../../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin"><span class="none"></span>Compiler Plugin</a></li>
    <li><a href="../../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin"><span class="none"></span>Packaging Plugin</a></li>
    <li><a href="../../BuildProperties.html" title="Build Properties"><span class="none"></span>Build Properties</a></li>
    <li><a href="../../tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin"><span class="none"></span>Surefire Plugin</a></li>
    <li><a href="../../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin"><span class="none"></span>p2 Publisher Plugin</a></li>
    <li><a href="../../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin"><span class="none"></span>p2 Repository Plugin</a></li>
    <li><a href="../../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin"><span class="none"></span>p2 Director Plugin</a></li>
    <li><a href="../../tycho-source-plugin/plugin-info.html" title="Source Plugin"><span class="none"></span>Source Plugin</a></li>
    <li><a href="../../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin"><span class="none"></span>Versions Plugin</a></li>
    <li><a href="../../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin"><span class="none"></span>POM Generator Plugin</a></li>
    <li><a href="../../TychoProperties.html" title="Tycho Properties"><span class="none"></span>Tycho Properties</a></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
            <hr />
            <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>
        </header>
        <main id="bodyColumn"  class="span10" >

  
    <section>
<h2><a name="tycho-p2:p2-metadata"></a>tycho-p2:p2-metadata</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-p2-plugin:1.5.1-SNAPSHOT: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>
      <section>
<h3><a name="Optional_Parameters"></a>Optional Parameters</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><a href="#attachP2Metadata">&lt;attachP2Metadata&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>(no description)<br /><b>Default value is</b>: true.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#baselineMode">&lt;baselineMode&gt;</a></td>
            
<td>BaselineMode</td>
            
<td>-</td>
            
<td>What happens when build artifact does not match baseline version: 

<ul>

<li>disable: Disable baseline validation.</li>

<li>warn (default): Warn about discrepancies between
build and baseline artifacts but do not fail the build.</li>

<li>failCommon: Fail the build if there are
discrepancies between artifacts present both in build and baseline.
Attached artifacts only present in the build do not result in build
failure.</li>

<li>fail: Fail the build if there are any discrepancy
between build and baseline artifacts.</li>
</ul><br /><b>Default value is</b>: warn.<br /><b>User property is</b>: tycho.baseline.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#baselineReplace">&lt;baselineReplace&gt;</a></td>
            
<td>BaselineReplace</td>
            
<td>-</td>
            
<td>Whether to replace build artifacts with baseline version or use
reactor version: 

<ul>

<li>none: Do not replace build artifacts with baseline
version.</li>

<li>common: Replace build artifacts with baseline
version. Attached artifacts only present in the build are not
removed and will likely result in inconsistencies among artifacts
of the same project! Use as last resort when baseline does not
contain all build artifacts.</li>

<li>all (default): Replace build artifacts with
baseline version. Attached artifacts only present in the build are
removed.</li>
</ul><br /><b>Default value is</b>: all.<br /><b>User property is</b>: tycho.baseline.replace.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#baselineRepositories">&lt;baselineRepositories&gt;</a></td>
            
<td>List</td>
            
<td>-</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><a href="#generateDownloadStatsProperty">&lt;generateDownloadStatsProperty&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>Whether to generate a 'download.stats' property for artifact
metadata. See https://wiki.eclipse.org/Equinox_p2_download_stats<br /><b>Default value is</b>: false.<br /><b>User property is</b>: tycho.generateDownloadStatsProperty.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#project">&lt;project&gt;</a></td>
            
<td>MavenProject</td>
            
<td>-</td>
            
<td>(no description)<br /><b>User property is</b>: project.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#supportedProjectTypes">&lt;supportedProjectTypes&gt;</a></td>
            
<td>List</td>
            
<td>-</td>
            
<td>Project types which this plugin supports.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <section>
<h4><a name="a.3CattachP2Metadata.3E"></a><b><a name="attachP2Metadata">&lt;attachP2Metadata&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: boolean</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: true</li>
        </ul><hr /></section><section>
<h4><a name="a.3CbaselineMode.3E"></a><b><a name="baselineMode">&lt;baselineMode&gt;</a></b></h4>
        
<div>What happens when build artifact does not match baseline version: 

<ul>

<li>disable: Disable baseline validation.</li>

<li>warn (default): Warn about discrepancies between
build and baseline artifacts but do not fail the build.</li>

<li>failCommon: Fail the build if there are
discrepancies between artifacts present both in build and baseline.
Attached artifacts only present in the build do not result in build
failure.</li>

<li>fail: Fail the build if there are any discrepancy
between build and baseline artifacts.</li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: org.eclipse.tycho.plugins.p2.BaselineMode</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: tycho.baseline</li>
          
<li><b>Default</b>: warn</li>
        </ul><hr /></section><section>
<h4><a name="a.3CbaselineReplace.3E"></a><b><a name="baselineReplace">&lt;baselineReplace&gt;</a></b></h4>
        
<div>Whether to replace build artifacts with baseline version or use
reactor version: 

<ul>

<li>none: Do not replace build artifacts with baseline
version.</li>

<li>common: Replace build artifacts with baseline
version. Attached artifacts only present in the build are not
removed and will likely result in inconsistencies among artifacts
of the same project! Use as last resort when baseline does not
contain all build artifacts.</li>

<li>all (default): Replace build artifacts with
baseline version. Attached artifacts only present in the build are
removed.</li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: org.eclipse.tycho.plugins.p2.BaselineReplace</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: tycho.baseline.replace</li>
          
<li><b>Default</b>: all</li>
        </ul><hr /></section><section>
<h4><a name="a.3CbaselineRepositories.3E"></a><b><a name="baselineRepositories">&lt;baselineRepositories&gt;</a></b></h4>
        
<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>: java.util.List</li>
          
<li><b>Required</b>: No</li>
        </ul><hr /></section><section>
<h4><a name="a.3CgenerateDownloadStatsProperty.3E"></a><b><a name="generateDownloadStatsProperty">&lt;generateDownloadStatsProperty&gt;</a></b></h4>
        
<div>Whether to generate a 'download.stats' property for artifact
metadata. See https://wiki.eclipse.org/Equinox_p2_download_stats</div>
        
<ul>
          
<li><b>Type</b>: boolean</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: tycho.generateDownloadStatsProperty</li>
          
<li><b>Default</b>: false</li>
        </ul><hr /></section><section>
<h4><a name="a.3Cproject.3E"></a><b><a name="project">&lt;project&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: org.apache.maven.project.MavenProject</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: project</li>
        </ul><hr /></section><section>
<h4><a name="a.3CsupportedProjectTypes.3E"></a><b><a name="supportedProjectTypes">&lt;supportedProjectTypes&gt;</a></b></h4>
        
<div>Project types which this plugin supports.</div>
        
<ul>
          
<li><b>Type</b>: java.util.List</li>
          
<li><b>Required</b>: No</li>
        </ul>
      </section></section>
    </section>
  

        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &#169;      2008&#x2013;2019<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
