<!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>Tycho OSGi Packaging Plugin &#x2013; tycho-packaging:package-feature</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>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: 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</li>
                                
      <li>
    
                          <a href="../index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin">
          <i class="none"></i>
        Compiler Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin">
          <i class="none"></i>
        Packaging Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../BuildProperties.html" title="Build Properties">
          <i class="none"></i>
        Build Properties</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-surefire/tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin">
          <i class="none"></i>
        Surefire Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin">
          <i class="none"></i>
        p2 Publisher Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin">
          <i class="none"></i>
        p2 Repository Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin">
          <i class="none"></i>
        p2 Director Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-source-plugin/plugin-info.html" title="Source Plugin">
          <i class="none"></i>
        Source Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin">
          <i class="none"></i>
        Versions Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin">
          <i class="none"></i>
        POM Generator Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../TychoProperties.html" title="Tycho Properties">
          <i class="none"></i>
        Tycho Properties</a>
            </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-packaging:package-feature"></a>tycho-packaging:package-feature</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-packaging-plugin:1.3.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: <tt>runtime</tt>.</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="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><tt><a href="#finalName">&lt;finalName&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Name of the generated JAR.<br /><b>User property is</b>: <tt>project.build.finalName</tt>.<br /><b>Alias is</b>: <tt>jarName</tt>.</td>
          </tr>
        </table>
      </div>
      
<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="#archive">&lt;archive&gt;</a></tt></td>
            
<td><tt>MavenArchiveConfiguration</tt></td>
            
<td><tt>-</tt></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
<tt>addMavenDescriptor</tt> 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
<tt>false</tt>. 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><tt><a href="#basedir">&lt;basedir&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>User property is</b>: <tt>project.basedir</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#deployableFeature">&lt;deployableFeature&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt>, standard eclipse update site directory
with feature content will be created under target folder.<br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#outputDirectory">&lt;outputDirectory&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The output directory of the jar file By default this is the Maven
<tt>target/</tt> directory.<br /><b>User property is</b>: <tt>project.build.directory</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#qualifier">&lt;qualifier&gt;</a></tt></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Build qualifier. Recommended way to set this parameter is using
build-qualifier goal.<br /><b>User property is</b>: <tt>buildQualifier</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#strictBinIncludes">&lt;strictBinIncludes&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If set to <tt>true</tt> (the default), missing build.properties
bin.includes will cause build failure. If set to
<tt>false</tt>, missing build.properties bin.includes will be
reported as warnings but the build will not fail.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#target">&lt;target&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>${project.build.directory}/site</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#useDefaultExcludes">&lt;useDefaultExcludes&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<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="aarchive"></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
<tt>addMavenDescriptor</tt> 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
<tt>false</tt>. 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>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="abasedir"></a><b><a name="basedir">&lt;basedir&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>project.basedir</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="adeployableFeature"></a><b><a name="deployableFeature">&lt;deployableFeature&gt;</a></b></h4>
        
<div>If set to <tt>true</tt>, standard eclipse update site directory
with feature content will be created under target folder.</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="afinalName"></a><b><a name="finalName">&lt;finalName&gt;</a></b></h4>
        
<div>Name of the generated JAR.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>project.build.finalName</tt></li>
          
<li><b>Alias</b>: <tt>jarName</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="aoutputDirectory"></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
<tt>target/</tt> directory.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>project.build.directory</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="aqualifier"></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>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>buildQualifier</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="astrictBinIncludes"></a><b><a name="strictBinIncludes">&lt;strictBinIncludes&gt;</a></b></h4>
        
<div>If set to <tt>true</tt> (the default), missing build.properties
bin.includes will cause build failure. If set to
<tt>false</tt>, missing build.properties bin.includes will be
reported as warnings but the build will not 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="atarget"></a><b><a name="target">&lt;target&gt;</a></b></h4>
        
<div>(no description)</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}/site</tt></li>
        </ul><hr /></div>
<div class="section">
<h4><a name="auseDefaultExcludes"></a><b><a name="useDefaultExcludes">&lt;useDefaultExcludes&gt;</a></b></h4>
        
<div>(no description)</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>
      </div></div>
    </div>
  

                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2008-2018
                        <a href="http://www.eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

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