<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from target/generated-site/xdoc/materialize-products-mojo.xml at 2019-04-05
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<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="20190405" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Tycho p2 Director Plugin &#x2013; tycho-p2-director:materialize-products</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.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.7.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><div id="bannerLeft"><h2>Tycho p2 Director 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-04-05<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.4.0</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div 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>
          <hr />
          <div id="poweredBy">
            <div class="clear"></div>
            <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="span10" >

  
    <div class="section">
<h2><a name="tycho-p2-director:materialize-products"></a>tycho-p2-director:materialize-products</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-p2-director-plugin:1.4.0:materialize-products</p>
      
<p><b>Description</b>:</p>
      
<div>
<p>Creates product installations for the products defined in the
project.</p></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="#directorRuntime">&lt;directorRuntime&gt;</a></tt></td>
            
<td><tt>DirectorMojo$DirectorRuntimeType</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Runtime in which the director application is executed. Can
be</p>

<ul>

<li><tt>internal</tt> - to use the director application from
Tycho's embedded OSGi runtime (default)</li>

<li><tt>standalone</tt> - to create and use a stand-alone
installation of the director application. This option is needed if
the product to be installed includes artifacts with
meta-requirements (e.g. to a non-standard touchpoint action).
Requires that the <tt>source</tt> parameter is set to
<tt>repository</tt>.</li>
</ul><br /><b>Default value is</b>: <tt>internal</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#forkedProcessTimeoutInSeconds">&lt;forkedProcessTimeoutInSeconds&gt;</a></tt></td>
            
<td><tt>int</tt></td>
            
<td><tt>-</tt></td>
            
<td>Kill the forked process after a certain number of seconds. If set
to 0, wait forever for the process, never timing out.<br /><b>Default value is</b>: <tt>0</tt>.<br /><b>User property is</b>: <tt>p2.timeout</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#installFeatures">&lt;installFeatures&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Include the feature JARs in installation. (Technically, this
sets the property <tt>org.eclipse.update.install.features</tt> to
<tt>true</tt> in the p2 profile.)</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#products">&lt;products&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Selection of products to be installed and configuration per
product.</p>

<p>If the project contains more than one product file, you need to
choose for which ones you want to create distribution archives. If
you choose to install more than one product, you need to specify
the <tt>attachId</tt> (which becomes a part of the classifier) to
make the classifiers unique. Example:</p>

<div>
<pre>
&lt;plugin&gt;
  &lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
  &lt;artifactId&gt;tycho-p2-director-plugin&lt;/artifactId&gt;
  &lt;version&gt;${tycho-version}&lt;/version&gt;
  &lt;executions&gt;
    &lt;execution&gt;
      &lt;id&gt;create-distributions&lt;/id&gt;
      &lt;goals&gt;
        &lt;goal&gt;materialize-products&lt;/goal&gt;
        &lt;goal&gt;archive-products&lt;/goal&gt;
      &lt;/goals&gt;
    &lt;/execution&gt;
  &lt;/executions&gt;
  &lt;configuration&gt;
    &lt;products&gt;
      &lt;product&gt;
        &lt;!-- select product with ID product.id; the archives get the classifiers &quot;&lt;os&gt;.&lt;ws&gt;.&lt;arch&gt;&quot; --&gt;
        &lt;id&gt;product.id&lt;/id&gt;
      &lt;/product&gt;
      &lt;product&gt;
        &lt;!-- select product with ID other.product.id for the classifiers &quot;other-&lt;os&gt;.&lt;ws&gt;.&lt;arch&gt;&quot; --&gt;
        &lt;id&gt;other.product.id&lt;/id&gt;
        &lt;attachId&gt;other&lt;/attachId&gt;
      &lt;/product&gt;
    &lt;/products&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div>

The following snippet shows the optional parameters which can be
specified per product: 

<div>
<pre>
  &lt;configuration&gt;
    &lt;products&gt;
      &lt;product&gt;
        &lt;id&gt;product.id&lt;/id&gt;
        &lt;!-- optional parameters --&gt;
        &lt;rootFolder&gt;&lt;/rootFolder&gt;
        &lt;rootFolders&gt;
          &lt;macosx&gt;&lt;/macosx&gt;
          &lt;linux&gt;&lt;/linux&gt;
          &lt;win32&gt;&lt;/win32&gt;
        &lt;/rootFolders&gt;
      &lt;/product&gt;
      ...
    &lt;/products&gt;
  &lt;/configuration&gt;
</pre></div>

Details on the product-specific configuration parameters: 

<ul>

<li><tt>rootFolder</tt> - The path where the installed product
shall be stored in the archive, e.g. &quot;eclipse&quot;. By default, the
product is stored in the archive root.</li>

<li><tt>rootFolders</tt> - OS-specific installation root folders,
overriding <tt>rootFolder</tt>. Allowed children are
<tt>&lt;macosx&gt;</tt>, <tt>&lt;win32&gt;</tt> and
<tt>&lt;linux&gt;</tt> or any other OS supported by p2. Since
0.18.0</li>
</ul><br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#profile">&lt;profile&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>The name of the p2 profile to be created.</p><br /><b>Default value is</b>: <tt>DefaultProfile</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#profileNames">&lt;profileNames&gt;</a></tt></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#source">&lt;source&gt;</a></tt></td>
            
<td><tt>DirectorMojo$InstallationSource</tt></td>
            
<td><tt>-</tt></td>
            
<td>
<p>Source repositories to be used in the director calls. Can be</p>

<ul>

<li><tt>targetPlatform</tt> - to use the target platform as
source (default)</li>

<li><tt>repository</tt> - to use the p2 repository in
<tt>target/repository/</tt> as source. With this option, the build
implicitly verifies that it would also be possible to install the
product from that repository with an external director
application.</li>
</ul><br /><b>Default value is</b>: <tt>targetPlatform</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="section">
<h4><a name="a.3CdirectorRuntime.3E"></a><b><a name="directorRuntime">&lt;directorRuntime&gt;</a></b></h4>
        
<div>
<p>Runtime in which the director application is executed. Can
be</p>

<ul>

<li><tt>internal</tt> - to use the director application from
Tycho's embedded OSGi runtime (default)</li>

<li><tt>standalone</tt> - to create and use a stand-alone
installation of the director application. This option is needed if
the product to be installed includes artifacts with
meta-requirements (e.g. to a non-standard touchpoint action).
Requires that the <tt>source</tt> parameter is set to
<tt>repository</tt>.</li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.tycho.plugins.p2.director.DirectorMojo$DirectorRuntimeType</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>internal</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CforkedProcessTimeoutInSeconds.3E"></a><b><a name="forkedProcessTimeoutInSeconds">&lt;forkedProcessTimeoutInSeconds&gt;</a></b></h4>
        
<div>Kill the forked process after a certain number of seconds. If set
to 0, wait forever for the process, never timing out.</div>
        
<ul>
          
<li><b>Type</b>: <tt>int</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>p2.timeout</tt></li>
          
<li><b>Default</b>: <tt>0</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CinstallFeatures.3E"></a><b><a name="installFeatures">&lt;installFeatures&gt;</a></b></h4>
        
<div>
<p>Include the feature JARs in installation. (Technically, this
sets the property <tt>org.eclipse.update.install.features</tt> to
<tt>true</tt> in the p2 profile.)</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="a.3Cproducts.3E"></a><b><a name="products">&lt;products&gt;</a></b></h4>
        
<div>
<p>Selection of products to be installed and configuration per
product.</p>

<p>If the project contains more than one product file, you need to
choose for which ones you want to create distribution archives. If
you choose to install more than one product, you need to specify
the <tt>attachId</tt> (which becomes a part of the classifier) to
make the classifiers unique. Example:</p>

<div>
<pre>
&lt;plugin&gt;
  &lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
  &lt;artifactId&gt;tycho-p2-director-plugin&lt;/artifactId&gt;
  &lt;version&gt;${tycho-version}&lt;/version&gt;
  &lt;executions&gt;
    &lt;execution&gt;
      &lt;id&gt;create-distributions&lt;/id&gt;
      &lt;goals&gt;
        &lt;goal&gt;materialize-products&lt;/goal&gt;
        &lt;goal&gt;archive-products&lt;/goal&gt;
      &lt;/goals&gt;
    &lt;/execution&gt;
  &lt;/executions&gt;
  &lt;configuration&gt;
    &lt;products&gt;
      &lt;product&gt;
        &lt;!-- select product with ID product.id; the archives get the classifiers &quot;&lt;os&gt;.&lt;ws&gt;.&lt;arch&gt;&quot; --&gt;
        &lt;id&gt;product.id&lt;/id&gt;
      &lt;/product&gt;
      &lt;product&gt;
        &lt;!-- select product with ID other.product.id for the classifiers &quot;other-&lt;os&gt;.&lt;ws&gt;.&lt;arch&gt;&quot; --&gt;
        &lt;id&gt;other.product.id&lt;/id&gt;
        &lt;attachId&gt;other&lt;/attachId&gt;
      &lt;/product&gt;
    &lt;/products&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div>

The following snippet shows the optional parameters which can be
specified per product: 

<div>
<pre>
  &lt;configuration&gt;
    &lt;products&gt;
      &lt;product&gt;
        &lt;id&gt;product.id&lt;/id&gt;
        &lt;!-- optional parameters --&gt;
        &lt;rootFolder&gt;&lt;/rootFolder&gt;
        &lt;rootFolders&gt;
          &lt;macosx&gt;&lt;/macosx&gt;
          &lt;linux&gt;&lt;/linux&gt;
          &lt;win32&gt;&lt;/win32&gt;
        &lt;/rootFolders&gt;
      &lt;/product&gt;
      ...
    &lt;/products&gt;
  &lt;/configuration&gt;
</pre></div>

Details on the product-specific configuration parameters: 

<ul>

<li><tt>rootFolder</tt> - The path where the installed product
shall be stored in the archive, e.g. &quot;eclipse&quot;. By default, the
product is stored in the archive root.</li>

<li><tt>rootFolders</tt> - OS-specific installation root folders,
overriding <tt>rootFolder</tt>. Allowed children are
<tt>&lt;macosx&gt;</tt>, <tt>&lt;win32&gt;</tt> and
<tt>&lt;linux&gt;</tt> or any other OS supported by p2. Since
0.18.0</li>
</ul></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="a.3Cprofile.3E"></a><b><a name="profile">&lt;profile&gt;</a></b></h4>
        
<div>
<p>The name of the p2 profile to be created.</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>DefaultProfile</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CprofileNames.3E"></a><b><a name="profileNames">&lt;profileNames&gt;</a></b></h4>
        
<div>(no description)</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="a.3Csource.3E"></a><b><a name="source">&lt;source&gt;</a></b></h4>
        
<div>
<p>Source repositories to be used in the director calls. Can be</p>

<ul>

<li><tt>targetPlatform</tt> - to use the target platform as
source (default)</li>

<li><tt>repository</tt> - to use the p2 repository in
<tt>target/repository/</tt> as source. With this option, the build
implicitly verifies that it would also be possible to install the
product from that repository with an external director
application.</li>
</ul></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.tycho.plugins.p2.director.DirectorMojo$InstallationSource</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>targetPlatform</tt></li>
        </ul>
      </div></div>
    </div>
  

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