<!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-plugin</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-plugin"></a>tycho-packaging:package-plugin</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-packaging-plugin:1.3.0:package-plugin</p>
      
<p><b>Description</b>:</p>
      
<div>Creates a jar-based plugin and attaches it as an artifact</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</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="#buildDirectory">&lt;buildDirectory&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
&quot;target/&quot; directory.<br /><b>User property is</b>: <tt>project.build.directory</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<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="#additionalFileSets">&lt;additionalFileSets&gt;</a></tt></td>
            
<td><tt>DefaultFileSet[]</tt></td>
            
<td><tt>-</tt></td>
            
<td>Additional files to be included in the bundle jar. This can be used
when <tt>bin.includes</tt> in build.properties is not flexible
enough , e.g. for generated files. If conflicting, additional files
win over <tt>bin.includes</tt><br />
Example:<br />
 

<div>
<pre>
&lt;additionalFileSets&gt;
 &lt;fileSet&gt;
  &lt;directory&gt;${project.build.directory}/mytool-gen/&lt;/directory&gt;
  &lt;includes&gt;
   &lt;include&gt;**/*&lt;/include&gt;
  &lt;/includes&gt;
 &lt;/fileSet&gt;     
&lt;/additionalFileSets&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="a">
            
<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>true</tt>. If the maven descriptor should not 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;false&lt;/addMavenDescriptor&gt;
    &lt;/archive&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div><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="#sourceReferences">&lt;sourceReferences&gt;</a></tt></td>
            
<td><tt>SourceReferences</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to generate an <a class="externalLink" href="http://wiki.eclipse.org/PDE/UI/SourceReferences">Eclipse-SourceReferences</a>
MANIFEST header. When using this parameter, property
${tycho.scmUrl} must be set and be a valid <a class="externalLink" href="http://maven.apache.org/scm/scm-url-format.html">maven SCM
URL</a>. Example configuration: 

<div>
<pre>
        &lt;sourceReferences&gt;
          &lt;generate&gt;true&lt;/generate&gt;
        &lt;/sourceReferences&gt;
</pre></div>

Note that a <tt>SourceReferencesProvider</tt> component must be
registered for the SCM type being used. You may also override the
generated value by configuring: 

<div>
<pre>
        &lt;sourceReferences&gt;
          &lt;generate&gt;true&lt;/generate&gt;
          &lt;customValue&gt;scm:myscm:customSourceReferenceValue&lt;/customValue&gt;
        &lt;/sourceReferences&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="b">
            
<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="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="aadditionalFileSets"></a><b><a name="additionalFileSets">&lt;additionalFileSets&gt;</a></b></h4>
        
<div>Additional files to be included in the bundle jar. This can be used
when <tt>bin.includes</tt> in build.properties is not flexible
enough , e.g. for generated files. If conflicting, additional files
win over <tt>bin.includes</tt><br />
Example:<br />
 

<div>
<pre>
&lt;additionalFileSets&gt;
 &lt;fileSet&gt;
  &lt;directory&gt;${project.build.directory}/mytool-gen/&lt;/directory&gt;
  &lt;includes&gt;
   &lt;include&gt;**/*&lt;/include&gt;
  &lt;/includes&gt;
 &lt;/fileSet&gt;     
&lt;/additionalFileSets&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.codehaus.plexus.archiver.util.DefaultFileSet[]</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /></div>
<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>true</tt>. If the maven descriptor should not 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;false&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="abuildDirectory"></a><b><a name="buildDirectory">&lt;buildDirectory&gt;</a></b></h4>
        
<div>The output directory of the jar file By default this is the Maven
&quot;target/&quot; directory.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>project.build.directory</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="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="asourceReferences"></a><b><a name="sourceReferences">&lt;sourceReferences&gt;</a></b></h4>
        
<div>Whether to generate an <a class="externalLink" href="http://wiki.eclipse.org/PDE/UI/SourceReferences">Eclipse-SourceReferences</a>
MANIFEST header. When using this parameter, property
${tycho.scmUrl} must be set and be a valid <a class="externalLink" href="http://maven.apache.org/scm/scm-url-format.html">maven SCM
URL</a>. Example configuration: 

<div>
<pre>
        &lt;sourceReferences&gt;
          &lt;generate&gt;true&lt;/generate&gt;
        &lt;/sourceReferences&gt;
</pre></div>

Note that a <tt>SourceReferencesProvider</tt> component must be
registered for the SCM type being used. You may also override the
generated value by configuring: 

<div>
<pre>
        &lt;sourceReferences&gt;
          &lt;generate&gt;true&lt;/generate&gt;
          &lt;customValue&gt;scm:myscm:customSourceReferenceValue&lt;/customValue&gt;
        &lt;/sourceReferences&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.tycho.packaging.SourceReferences</tt></li>
          
<li><b>Required</b>: <tt>No</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="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>
