<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from target/generated-site/xdoc/p2-metadata-default-mojo.xml at 2020-04-06
 | 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-default</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: 2020-04-06<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.0</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="../../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="" title="Properties"><span class="icon-chevron-down"></span>Properties</a>
     <ul class="nav nav-list">
      <li><a href="../../BuildProperties.html" title="Build Properties"><span class="none"></span>Build Properties</a></li>
      <li><a href="../../TychoProperties.html" title="Tycho Properties"><span class="none"></span>Tycho Properties</a></li>
     </ul></li>
   <li class="nav-header">Tycho Extras</li>
    <li><a href="../../tycho-extras/index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../../tycho-extras/tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin"><span class="none"></span>P2 Extras Plugin</a></li>
    <li><a href="../../tycho-extras/target-platform-validation-plugin/plugin-info.html" title="Target Platform Validation Plugin"><span class="none"></span>Target Platform Validation Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin"><span class="none"></span>Eclipserun Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin"><span class="none"></span>Document Bundle Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-source-feature-plugin/plugin-info.html" title="Source Feature Generation Plugin"><span class="none"></span>Source Feature Generation Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-pack200/index.html" title="Pack200 Plugins"><span class="icon-chevron-down"></span>Pack200 Plugins</a>
     <ul class="nav nav-list">
      <li><a href="../../tycho-extras/tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin"><span class="none"></span>Normalization Plugin</a></li>
      <li><a href="../../tycho-extras/tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin"><span class="none"></span>Pack Plugin</a></li>
     </ul></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-default"></a>tycho-p2:p2-metadata-default</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-p2-plugin:1.7.0:p2-metadata-default</p>
      
<p><b>Description</b>:</p>
      
<div>P2 metadata generation goal bound to default artifact build
lifecycle. For explicit binding use p2-metadata goal. The idea is
to avoid double p2 metadata generation for projects that generate
additional artifacts or post process standard artifacts using
custom goals bound to package phase.</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="#defaultP2Metadata">&lt;defaultP2Metadata&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="#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="b">
            
<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="a">
            
<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.3CdefaultP2Metadata.3E"></a><b><a name="defaultP2Metadata">&lt;defaultP2Metadata&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.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;2020<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
