<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from target/generated-site/xdoc/publish-features-and-bundles-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 Extras Plugin &#x2013; tycho-p2-extras:publish-features-and-bundles</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 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: 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-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.7.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>
      <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="#additionalArgs">&lt;additionalArgs&gt;</a></td>
            
<td>String</td>
            
<td>-</td>
            
<td>Optional line of additional arguments passed to the p2 application
launcher.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#append">&lt;append&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>Optional flag to append artifacts to an existing repository<br /><b>Default value is</b>: false.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#artifactRepositoryLocation">&lt;artifactRepositoryLocation&gt;</a></td>
            
<td>String</td>
            
<td>-</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>: ${project.build.directory}/repository.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#compress">&lt;compress&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>Create compressed jars rather than plain xml<br /><b>Default value is</b>: true.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#forkedProcessTimeoutInSeconds">&lt;forkedProcessTimeoutInSeconds&gt;</a></td>
            
<td>int</td>
            
<td>-</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>: 0.<br /><b>User property is</b>: p2.timeout.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#metadataRepositoryLocation">&lt;metadataRepositoryLocation&gt;</a></td>
            
<td>String</td>
            
<td>-</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>: ${project.build.directory}/repository.<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="#publishArtifacts">&lt;publishArtifacts&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>Publish artifacts to repository<br /><b>Default value is</b>: true.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#reusePack200Files">&lt;reusePack200Files&gt;</a></td>
            
<td>boolean</td>
            
<td>-</td>
            
<td>Optional flag to include .pack.gz files<br /><b>Default value is</b>: false.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#sourceLocation">&lt;sourceLocation&gt;</a></td>
            
<td>String</td>
            
<td>-</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>: ${project.build.directory}/source.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <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>: java.lang.String</li>
          
<li><b>Required</b>: No</li>
        </ul><hr /></section><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>: boolean</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: false</li>
        </ul><hr /></section><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>: java.lang.String</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: ${project.build.directory}/repository</li>
        </ul><hr /></section><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>: boolean</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: true</li>
        </ul><hr /></section><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>: int</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: p2.timeout</li>
          
<li><b>Default</b>: 0</li>
        </ul><hr /></section><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>: java.lang.String</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: ${project.build.directory}/repository</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.3CpublishArtifacts.3E"></a><b><a name="publishArtifacts">&lt;publishArtifacts&gt;</a></b></h4>
        
<div>Publish artifacts to repository</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.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>: boolean</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: false</li>
        </ul><hr /></section><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>: java.lang.String</li>
          
<li><b>Required</b>: No</li>
          
<li><b>Default</b>: ${project.build.directory}/source</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>
