<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from target/generated-site/xdoc/package-feature-mojo.xml at 2022-01-21
 | Rendered using Apache Maven Fluido Skin 1.10.0
-->
<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.11.1" />
    <title>Tycho OSGi Packaging Plugin &#x2013; tycho-packaging:package-feature</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.10.0.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.10.0.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h2>Tycho OSGi Packaging 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: 2022-01-21<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.6.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="../target-platform-configuration/plugin-info.html" title="Target Platform Configuration"><span class="none"></span>Target Platform Configuration</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-packaging:package-feature"></a>tycho-packaging:package-feature</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-packaging-plugin:2.6.0:package-feature</p>
      
<p><b>Description</b>:</p>
      
<div>(no description)</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Requires dependency resolution of artifacts in scope: <code>runtime</code>.</li>
        
<li>The goal is thread-safe and supports parallel builds.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <code>package</code>.</li>
      </ul>
      <section>
<h3><a name="Required_Parameters"></a>Required 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 align="left"><code><a href="#finalName">&lt;finalName&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>Name of the generated JAR.<br /><b>User property is</b>: <code>project.build.finalName</code>.<br /><b>Alias is</b>: <code>jarName</code>.</td>
          </tr>
        </table>
      </section>
      <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 align="left"><code><a href="#archive">&lt;archive&gt;</a></code></td>
            
<td><code>MavenArchiveConfiguration</code></td>
            
<td><code>-</code></td>
            
<td>The <a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/">maven
archiver</a> to use. One of the archiver properties is the
<code>addMavenDescriptor</code> flag, which indicates whether the
generated archive will contain the pom.xml and pom.properties file.
If no archive configuration is specified, the default value is
<code>false</code>. If the maven descriptor should be added to the
artifact, use the following configuration: 

<div>
<pre>
&lt;plugin&gt;
  &lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
  &lt;artifactId&gt;tycho-packaging-plugin&lt;/artifactId&gt;
  &lt;version&gt;${tycho-version}&lt;/version&gt;
  &lt;configuration&gt;
    &lt;archive&gt;
      &lt;addMavenDescriptor&gt;true&lt;/addMavenDescriptor&gt;
    &lt;/archive&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#basedir">&lt;basedir&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>-</code></td>
            
<td>(no description)<br /><b>User property is</b>: <code>project.basedir</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#deployableFeature">&lt;deployableFeature&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>If set to <code>true</code>, standard eclipse update site directory
with feature content will be created under target folder.<br /><b>Default value is</b>: <code>false</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#outputDirectory">&lt;outputDirectory&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>-</code></td>
            
<td>The output directory of the jar file By default this is the Maven
<code>target/</code> directory.<br /><b>User property is</b>: <code>project.build.directory</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#qualifier">&lt;qualifier&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>Build qualifier. Recommended way to set this parameter is using
build-qualifier goal.<br /><b>User property is</b>: <code>buildQualifier</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#strictBinIncludes">&lt;strictBinIncludes&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>If set to <code>true</code> (the default), missing build.properties
bin.includes will cause build failure. If set to
<code>false</code>, missing build.properties bin.includes will be
reported as warnings but the build will not fail.<br /><b>Default value is</b>: <code>true</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#target">&lt;target&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>-</code></td>
            
<td>(no description)<br /><b>Default value is</b>: <code>${project.build.directory}/site</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#useDefaultExcludes">&lt;useDefaultExcludes&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>(no description)<br /><b>Default value is</b>: <code>true</code>.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <section>
<h4><a name="a.3Carchive.3E"></a><b><a name="archive">&lt;archive&gt;</a></b></h4>
        
<div>The <a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/">maven
archiver</a> to use. One of the archiver properties is the
<code>addMavenDescriptor</code> flag, which indicates whether the
generated archive will contain the pom.xml and pom.properties file.
If no archive configuration is specified, the default value is
<code>false</code>. If the maven descriptor should be added to the
artifact, use the following configuration: 

<div>
<pre>
&lt;plugin&gt;
  &lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
  &lt;artifactId&gt;tycho-packaging-plugin&lt;/artifactId&gt;
  &lt;version&gt;${tycho-version}&lt;/version&gt;
  &lt;configuration&gt;
    &lt;archive&gt;
      &lt;addMavenDescriptor&gt;true&lt;/addMavenDescriptor&gt;
    &lt;/archive&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <code>org.apache.maven.archiver.MavenArchiveConfiguration</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cbasedir.3E"></a><b><a name="basedir">&lt;basedir&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>project.basedir</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CdeployableFeature.3E"></a><b><a name="deployableFeature">&lt;deployableFeature&gt;</a></b></h4>
        
<div>If set to <code>true</code>, standard eclipse update site directory
with feature content will be created under target folder.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CfinalName.3E"></a><b><a name="finalName">&lt;finalName&gt;</a></b></h4>
        
<div>Name of the generated JAR.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>Yes</code></li>
          
<li><b>User Property</b>: <code>project.build.finalName</code></li>
          
<li><b>Alias</b>: <code>jarName</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CoutputDirectory.3E"></a><b><a name="outputDirectory">&lt;outputDirectory&gt;</a></b></h4>
        
<div>The output directory of the jar file By default this is the Maven
<code>target/</code> directory.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>project.build.directory</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cqualifier.3E"></a><b><a name="qualifier">&lt;qualifier&gt;</a></b></h4>
        
<div>Build qualifier. Recommended way to set this parameter is using
build-qualifier goal.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>buildQualifier</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CstrictBinIncludes.3E"></a><b><a name="strictBinIncludes">&lt;strictBinIncludes&gt;</a></b></h4>
        
<div>If set to <code>true</code> (the default), missing build.properties
bin.includes will cause build failure. If set to
<code>false</code>, missing build.properties bin.includes will be
reported as warnings but the build will not fail.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Ctarget.3E"></a><b><a name="target">&lt;target&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>${project.build.directory}/site</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CuseDefaultExcludes.3E"></a><b><a name="useDefaultExcludes">&lt;useDefaultExcludes&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul>
      </section></section>
    </section>
  

        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>&#169;      2008&#x2013;2022
<a href="http://www.eclipse.org/">Eclipse Foundation</a>
</p>
        </div>
      </div>
    </footer>
<script>
	if(anchors) {
	  anchors.add();
	}
</script>
  </body>
</html>
