<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2018-12-17
 | 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="20181217" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Tycho p2 Repository Plugin &#x2013; tycho-p2-repository:assemble-repository</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 Repository 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: 2018-12-17</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 1.3.0</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>
                  
      <li>
    
                          <a href="../../TychoProperties.html" title="Tycho Properties">
          <i class="none"></i>
        Tycho Properties</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><a name="tycho-p2-repository:assemble-repository"></a>tycho-p2-repository:assemble-repository</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-p2-repository-plugin:1.3.0:assemble-repository</p>
      
<p><b>Description</b>:</p>
      
<div>
<p>Aggregates content into a p2 repository in
<tt>${project.build.directory}/repository</tt>.</p>

<ol style="list-style-type: decimal">

<li>Copies resources (if any) from
<tt>${project.build.outputDirectory}</tt> to
<tt>${project.build.directory}/repository</tt>. This allows to
include additional files such as <tt>index.html</tt> or about
files from <tt>src/main/resources</tt> (or elsewhere) into the
p2 repository.</li>

<li>The p2 aggregation into
<tt>${project.build.directory}/repository</tt> runs
recursively: it starts with the content published in the current
module, and traverses all artifacts that are marked as
<i>included</i> in already aggregated artifacts. (The following
artifacts can include other artifacts: categories, products, and
features. Note: Dependencies with a strict version range, i.e. a
range which only matches exactly one version of an artifact, are
also considered as inclusions.)</li>
</ol>
<br />
<br /></div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
      </ul>
      
<div class="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><tt><a href="#compress">&lt;compress&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Compress the repository index files <tt>content.xml</tt> and
<tt>artifacts.xml</tt>.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#createArtifactRepository">&lt;createArtifactRepository&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>By default, this goal creates a p2 repository. Set this to
<tt>false</tt> if only a p2 metadata repository (without the
artifact files) shall be created.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#extraArtifactRepositoryProperties">&lt;extraArtifactRepositoryProperties&gt;</a></tt></td>
            
<td><tt>Map</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#includeAllDependencies">&lt;includeAllDependencies&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>By default, only (transitive) <i>inclusions</i> of the
published artifacts are aggregated. Set this parameter to
<tt>true</tt> to aggregate <i>all transitive
dependencies</i>, making the resulting p2 repository
self-contained.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#keepNonXzIndexFiles">&lt;keepNonXzIndexFiles&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>If <tt>xzCompress</tt> is <tt>true</tt>, whether jar or
xml index files should be kept in addition to XZ-compressed index
files. This fallback provides backwards compatibility for pre-Mars
p2 clients which cannot read XZ-compressed index files.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#profileProperties">&lt;profileProperties&gt;</a></tt></td>
            
<td><tt>Map</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Additional properties against which p2 filters are evaluated
while aggregating.</p><br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#repositoryName">&lt;repositoryName&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>The name attribute stored in the created p2 repository.</p><br /><b>Default value is</b>: <tt>${project.name}</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#xzCompress">&lt;xzCompress&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Add XZ-compressed repository index files. XZ offers better
compression ratios esp. for highly redundant file content.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="acompress"></a><b><a name="compress">&lt;compress&gt;</a></b></h4>
        
<div>
<p>Compress the repository index files <tt>content.xml</tt> and
<tt>artifacts.xml</tt>.</p></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 /></div>
<div class="section">
<h4><a name="acreateArtifactRepository"></a><b><a name="createArtifactRepository">&lt;createArtifactRepository&gt;</a></b></h4>
        
<div>
<p>By default, this goal creates a p2 repository. Set this to
<tt>false</tt> if only a p2 metadata repository (without the
artifact files) shall be created.</p></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 /></div>
<div class="section">
<h4><a name="aextraArtifactRepositoryProperties"></a><b><a name="extraArtifactRepositoryProperties">&lt;extraArtifactRepositoryProperties&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.Map</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="aincludeAllDependencies"></a><b><a name="includeAllDependencies">&lt;includeAllDependencies&gt;</a></b></h4>
        
<div>
<p>By default, only (transitive) <i>inclusions</i> of the
published artifacts are aggregated. Set this parameter to
<tt>true</tt> to aggregate <i>all transitive
dependencies</i>, making the resulting p2 repository
self-contained.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="akeepNonXzIndexFiles"></a><b><a name="keepNonXzIndexFiles">&lt;keepNonXzIndexFiles&gt;</a></b></h4>
        
<div>
<p>If <tt>xzCompress</tt> is <tt>true</tt>, whether jar or
xml index files should be kept in addition to XZ-compressed index
files. This fallback provides backwards compatibility for pre-Mars
p2 clients which cannot read XZ-compressed index files.</p></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 /></div>
<div class="section">
<h4><a name="aprofileProperties"></a><b><a name="profileProperties">&lt;profileProperties&gt;</a></b></h4>
        
<div>
<p>Additional properties against which p2 filters are evaluated
while aggregating.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.Map</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="arepositoryName"></a><b><a name="repositoryName">&lt;repositoryName&gt;</a></b></h4>
        
<div>
<p>The name attribute stored in the created p2 repository.</p></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>${project.name}</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="axzCompress"></a><b><a name="xzCompress">&lt;xzCompress&gt;</a></b></h4>
        
<div>
<p>Add XZ-compressed repository index files. XZ offers better
compression ratios esp. for highly redundant file content.</p></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>
      </div></div>
    </div>
  

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

    <hr/>

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

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