<!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>p2 Extras Plugin &#x2013; tycho-p2-extras:mirror</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>p2 Extras 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 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-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin">
          <i class="none"></i>
        Document Bundle 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><a name="tycho-p2-extras:mirror"></a>tycho-p2-extras:mirror</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho.extras:tycho-p2-extras-plugin:1.3.0:mirror</p>
      
<p><b>Description</b>:</p>
      
<div>Maven plugin front-end for
org.eclipse.equinox.p2.internal.repository.tools.MirrorApplication.
Intended as a replacement for the <a class="externalLink" href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_repositorytasks.htm">p2.mirror
ant task</a>.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</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="#append">&lt;append&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to append to an existing destination repository. Note that
appending an IU which already exists in the destination repository
will cause the mirror operation to fail.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#compress">&lt;compress&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to compress the destination repository metadata files
(artifacts.xml, content.xml).<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#currentModuleAsSource">&lt;currentModuleAsSource&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>
<p>Whether the current build p2 output should be added as source.
Ignored for non-Tycho packaging types. Ignored if
<tt>targetPlatformAsSource</tt> == false;</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#destination">&lt;destination&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The destination directory to mirror to.<br /><b>Default value is</b>: <tt>${project.build.directory}/repository</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#filter">&lt;filter&gt;</a></tt></td>
            
<td><tt>Map</tt></td>
            
<td><tt>-</tt></td>
            
<td>Filter properties. In particular, a platform filter can be
specified by using keys <tt>osgi.os, osgi.ws, osgi.arch</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#followOnlyFilteredRequirements">&lt;followOnlyFilteredRequirements&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Follow only requirements which match the filter specified.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#followStrictOnly">&lt;followStrictOnly&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Set to true if only strict dependencies should be followed. A
strict dependency is defined by a version range only including
exactly one version (e.g. [1.0.0.v2009, 1.0.0.v2009]). In
particular, plugins/features included in a feature are normally
required via a strict dependency from the feature to the included
plugin/feature.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#ignoreErrors">&lt;ignoreErrors&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>
<p>If set to true, mirroring continues to run in the event of an
error during the mirroring process and will just log an info
message.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#includeFeatures">&lt;includeFeatures&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether or not to include features.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#includeNonGreedy">&lt;includeNonGreedy&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether or not to follow non-greedy requirements.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#includeOptional">&lt;includeOptional&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether or not to follow optional requirements.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#includePacked">&lt;includePacked&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether or not to include pack200 artifacts.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#ius">&lt;ius&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>(Optional) Which IUs to mirror. If omitted, all IUs available in
the source repositories will be mirrored. An IU must specify an id
and may specify a version. If version is omitted, the latest
available version will be queried. By default, IUs required by the
specified IUs will also be mirrored. See also
<tt>followStrictOnly</tt>,
<tt>followOnlyFilteredRequirements</tt> ,
<tt>includeOptional</tt>, <tt>includeNonGreedy</tt>,
<tt>includeFeatures</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#keepNonXzIndexFiles">&lt;keepNonXzIndexFiles&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>0.25.0</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="b">
            
<td><tt><a href="#latestVersionOnly">&lt;latestVersionOnly&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Set to <tt>true</tt> to filter the resulting set of IUs to only
include the latest version of each Installable Unit only. By
default, all versions satisfying dependencies are included.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#mirrorMetadataOnly">&lt;mirrorMetadataOnly&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to mirror metadata only (no artifacts).<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#name">&lt;name&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The target repository name.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#source">&lt;source&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>Source repositori(es) to mirror from.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#targetPlatformAsSource">&lt;targetPlatformAsSource&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>1.1.0</tt></td>
            
<td>
<p>Whether to add the target-platform content as a source. Ignored
for non-Tycho packaging types.</p><br /><b>Default value is</b>: <tt>false</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>0.25.0</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="aappend"></a><b><a name="append">&lt;append&gt;</a></b></h4>
        
<div>Whether to append to an existing destination repository. Note that
appending an IU which already exists in the destination repository
will cause the mirror operation to fail.</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="acompress"></a><b><a name="compress">&lt;compress&gt;</a></b></h4>
        
<div>Whether to compress the destination repository metadata files
(artifacts.xml, content.xml).</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="acurrentModuleAsSource"></a><b><a name="currentModuleAsSource">&lt;currentModuleAsSource&gt;</a></b></h4>
        
<div>
<p>Whether the current build p2 output should be added as source.
Ignored for non-Tycho packaging types. Ignored if
<tt>targetPlatformAsSource</tt> == false;</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</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="adestination"></a><b><a name="destination">&lt;destination&gt;</a></b></h4>
        
<div>The destination directory to mirror to.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/repository</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="afilter"></a><b><a name="filter">&lt;filter&gt;</a></b></h4>
        
<div>Filter properties. In particular, a platform filter can be
specified by using keys <tt>osgi.os, osgi.ws, osgi.arch</tt>.</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="afollowOnlyFilteredRequirements"></a><b><a name="followOnlyFilteredRequirements">&lt;followOnlyFilteredRequirements&gt;</a></b></h4>
        
<div>Follow only requirements which match the filter specified.</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="afollowStrictOnly"></a><b><a name="followStrictOnly">&lt;followStrictOnly&gt;</a></b></h4>
        
<div>Set to true if only strict dependencies should be followed. A
strict dependency is defined by a version range only including
exactly one version (e.g. [1.0.0.v2009, 1.0.0.v2009]). In
particular, plugins/features included in a feature are normally
required via a strict dependency from the feature to the included
plugin/feature.</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="aignoreErrors"></a><b><a name="ignoreErrors">&lt;ignoreErrors&gt;</a></b></h4>
        
<div>
<p>If set to true, mirroring continues to run in the event of an
error during the mirroring process and will just log an info
message.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</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="aincludeFeatures"></a><b><a name="includeFeatures">&lt;includeFeatures&gt;</a></b></h4>
        
<div>Whether or not to include features.</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="aincludeNonGreedy"></a><b><a name="includeNonGreedy">&lt;includeNonGreedy&gt;</a></b></h4>
        
<div>Whether or not to follow non-greedy requirements.</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="aincludeOptional"></a><b><a name="includeOptional">&lt;includeOptional&gt;</a></b></h4>
        
<div>Whether or not to follow optional requirements.</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="aincludePacked"></a><b><a name="includePacked">&lt;includePacked&gt;</a></b></h4>
        
<div>Whether or not to include pack200 artifacts.</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="aius"></a><b><a name="ius">&lt;ius&gt;</a></b></h4>
        
<div>(Optional) Which IUs to mirror. If omitted, all IUs available in
the source repositories will be mirrored. An IU must specify an id
and may specify a version. If version is omitted, the latest
available version will be queried. By default, IUs required by the
specified IUs will also be mirrored. See also
<tt>followStrictOnly</tt>,
<tt>followOnlyFilteredRequirements</tt> ,
<tt>includeOptional</tt>, <tt>includeNonGreedy</tt>,
<tt>includeFeatures</tt>.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</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>Since</b>: <tt>0.25.0</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="alatestVersionOnly"></a><b><a name="latestVersionOnly">&lt;latestVersionOnly&gt;</a></b></h4>
        
<div>Set to <tt>true</tt> to filter the resulting set of IUs to only
include the latest version of each Installable Unit only. By
default, all versions satisfying dependencies are included.</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="amirrorMetadataOnly"></a><b><a name="mirrorMetadataOnly">&lt;mirrorMetadataOnly&gt;</a></b></h4>
        
<div>Whether to mirror metadata only (no artifacts).</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="aname"></a><b><a name="name">&lt;name&gt;</a></b></h4>
        
<div>The target repository name.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="asource"></a><b><a name="source">&lt;source&gt;</a></b></h4>
        
<div>Source repositori(es) to mirror from.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="atargetPlatformAsSource"></a><b><a name="targetPlatformAsSource">&lt;targetPlatformAsSource&gt;</a></b></h4>
        
<div>
<p>Whether to add the target-platform content as a source. Ignored
for non-Tycho packaging types.</p></div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>1.1.0</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="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>Since</b>: <tt>0.25.0</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;                    2010-2018
                        <a href="http://www.eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

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