<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from target/generated-site/xdoc/publish-features-and-bundles-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>p2 Extras Plugin &#x2013; tycho-p2-extras:publish-features-and-bundles</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>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: 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 Extras</li>
    <li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin"><span class="none"></span>P2 Extras Plugin</a></li>
    <li><a href="../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-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin"><span class="none"></span>Eclipserun Plugin</a></li>
    <li><a href="../tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin"><span class="none"></span>Document Bundle Plugin</a></li>
    <li><a href="../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-pack200/index.html" title="Pack200 Plugins"><span class="icon-chevron-down"></span>Pack200 Plugins</a>
    <ul class="nav nav-list">
    <li><a href="../tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin"><span class="none"></span>Normalization Plugin</a></li>
    <li><a href="../tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin"><span class="none"></span>Pack Plugin</a></li>
    </ul>
</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-extras:publish-features-and-bundles"></a>tycho-p2-extras:publish-features-and-bundles</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho.extras:tycho-p2-extras-plugin:1.4.0:publish-features-and-bundles</p>
      
<p><b>Description</b>:</p>
      
<div>This goal invokes the feature and bundle publisher on a folder.</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="#additionalArgs">&lt;additionalArgs&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Optional line of additional arguments passed to the p2 application
launcher.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#append">&lt;append&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Optional flag to append artifacts to an existing repository<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#artifactRepositoryLocation">&lt;artifactRepositoryLocation&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Location of the artifact repository to write. Note: The
AssembleRepositoryMojo of tycho-p2-repository-plugin will only work
with the predefined default ${project.build.directory}/repository.<br /><b>Default value is</b>: <tt>${project.build.directory}/repository</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>Create compressed jars rather than plain xml<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<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="a">
            
<td><tt><a href="#metadataRepositoryLocation">&lt;metadataRepositoryLocation&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Location of the metadata repository to write. The
AssembleRepositoryMojo of tycho-p2-repository-plugin will only work
with the predefined default ${project.build.directory}/repository.<br /><b>Default value is</b>: <tt>${project.build.directory}/repository</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#project">&lt;project&gt;</a></tt></td>
            
<td><tt>MavenProject</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>User property is</b>: <tt>project</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#publishArtifacts">&lt;publishArtifacts&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Publish artifacts to repository<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#reusePack200Files">&lt;reusePack200Files&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Optional flag to include .pack.gz files<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#sourceLocation">&lt;sourceLocation&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Location with features and/or plugins directories on which the
features and bundles publisher shall be called.<br /><b>Default value is</b>: <tt>${project.build.directory}/source</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.3CadditionalArgs.3E"></a><b><a name="additionalArgs">&lt;additionalArgs&gt;</a></b></h4>
        
<div>Optional line of additional arguments passed to the p2 application
launcher.</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="a.3Cappend.3E"></a><b><a name="append">&lt;append&gt;</a></b></h4>
        
<div>Optional flag to append artifacts to an existing repository</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="a.3CartifactRepositoryLocation.3E"></a><b><a name="artifactRepositoryLocation">&lt;artifactRepositoryLocation&gt;</a></b></h4>
        
<div>Location of the artifact repository to write. Note: The
AssembleRepositoryMojo of tycho-p2-repository-plugin will only work
with the predefined default ${project.build.directory}/repository.</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.build.directory}/repository</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3Ccompress.3E"></a><b><a name="compress">&lt;compress&gt;</a></b></h4>
        
<div>Create compressed jars rather than plain 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="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.3CmetadataRepositoryLocation.3E"></a><b><a name="metadataRepositoryLocation">&lt;metadataRepositoryLocation&gt;</a></b></h4>
        
<div>Location of the metadata repository to write. The
AssembleRepositoryMojo of tycho-p2-repository-plugin will only work
with the predefined default ${project.build.directory}/repository.</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.build.directory}/repository</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>org.apache.maven.project.MavenProject</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>project</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="a.3CpublishArtifacts.3E"></a><b><a name="publishArtifacts">&lt;publishArtifacts&gt;</a></b></h4>
        
<div>Publish artifacts to repository</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.3CreusePack200Files.3E"></a><b><a name="reusePack200Files">&lt;reusePack200Files&gt;</a></b></h4>
        
<div>Optional flag to include .pack.gz files</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="a.3CsourceLocation.3E"></a><b><a name="sourceLocation">&lt;sourceLocation&gt;</a></b></h4>
        
<div>Location with features and/or plugins directories on which the
features and bundles publisher shall be called.</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.build.directory}/source</tt></li>
        </ul>
      </div></div>
    </div>
  

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