<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2017-12-22 
 | Rendered using Apache Maven Fluido Skin 1.3.1
-->
<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="20171222" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Maven Bundle Plugin &#x2013; bundle:bundle</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.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.1.min.js"></script>

    
                  </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                <div id="bannerLeft">
                <h2>Maven Bundle 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: 2017-12-22
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 3.4.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">Overview</li>
                              
      <li>
  
                          <a href="index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                
      <li>
  
                          <a href="plugin-info.html" title="Goals">
          <i class="none"></i>
        Goals</a>
            </li>
                
      <li>
  
                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">
          <i class="none"></i>
        Wiki</a>
            </li>
                
      <li>
  
                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">
          <i class="none"></i>
        FAQ</a>
            </li>
                
      <li>
  
                          <a href="jira-report.html" title="Release Notes">
          <i class="none"></i>
        Release Notes</a>
            </li>
                              <li class="nav-header">Project Documentation</li>
                                                                                                                                                                          
      <li>
  
                          <a href="project-info.html" title="Project Information">
          <i class="icon-chevron-right"></i>
        Project Information</a>
                  </li>
                                                                                                                                          
      <li>
  
                          <a href="project-reports.html" title="Project Reports">
          <i class="icon-chevron-right"></i>
        Project Reports</a>
                  </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="span9" >
                                  
            
  
    <div class="section">
<h2><a name="bundle:bundle"></a>bundle:bundle</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.felix:maven-bundle-plugin:3.4.0:bundle</p>
      
<p><b>Description</b>:</p>
      
<div>Create an OSGi bundle from Maven project</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>test</tt>.</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>: <tt>package</tt>.</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><b><a href="#archive">archive</a></b></td>
            
<td><tt>MavenArchiveConfiguration</tt></td>
            
<td><tt>-</tt></td>
            
<td>The archive configuration to use.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#buildDirectory">buildDirectory</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The directory for the generated JAR.<br /><b>Default value is</b>: <tt>${project.build.directory}</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#classifier">classifier</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Classifier type of the bundle to be installed. For example,
&quot;jdk14&quot;. Defaults to none which means this is the project's main
bundle.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#createDependencyReducedPom">createDependencyReducedPom</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If true, remove any inlined or embedded dependencies from the
resulting pom.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#dependencyReducedPomLocation">dependencyReducedPomLocation</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>Where to put the dependency reduced pom. Note: setting a value for
this parameter with a directory other than ${basedir} will change
the value of ${basedir} for all executions that come after the
shade execution. This is often not what you want. This is
considered an open issue with this plugin.<br /><b>Default value is</b>: <tt>${basedir}/dependency-reduced-pom.xml</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Comma separated list of artifactIds to exclude from the dependency
classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#exportScr">exportScr</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>When true, dump the generated SCR files<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#finalName">finalName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Final name of the bundle (without classifier or extension)<br /><b>Default value is</b>: <tt>${project.build.finalName}</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#instructions">instructions</a></b></td>
            
<td><tt>Map</tt></td>
            
<td><tt>-</tt></td>
            
<td>The BND instructions for the bundle. Maven will expand property
macros in these values. If you want to use a BND macro, you must
double the dollar sign for the plugin to pass it to BND correctly.
For example: <br />
<tt>&lt;_consumer-policy&gt;$${range;[===,+)</tt><tt>}</tt><tt>&lt;/_consumer-policy&gt;</tt><br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#manifestLocation">manifestLocation</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#niceManifest">niceManifest</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Output a nicely formatted manifest that still respects the 72
character line limit.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>niceManifest</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#outputDirectory">outputDirectory</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The directory for the generated bundles.<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#packaging">packaging</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
Defaults to none which means use the same packaging as the project.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#scrLocation">scrLocation</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>Directory where the SCR files will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>Project types which this plugin supports.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#unpackBundle">unpackBundle</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="archive">archive</a>:</b></p>
        
<div>The archive configuration to use.</div>
        
<ul>
          
<li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
        
<div>The directory for the generated JAR.</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}</tt></li>
        </ul><hr />
<p><b><a name="classifier">classifier</a>:</b></p>
        
<div>Classifier type of the bundle to be installed. For example,
&quot;jdk14&quot;. Defaults to none which means this is the project's main
bundle.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="createDependencyReducedPom">createDependencyReducedPom</a>:</b></p>
        
<div>If true, remove any inlined or embedded dependencies from the
resulting pom.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="dependencyReducedPomLocation">dependencyReducedPomLocation</a>:</b></p>
        
<div>Where to put the dependency reduced pom. Note: setting a value for
this parameter with a directory other than ${basedir} will change
the value of ${basedir} for all executions that come after the
shade execution. This is often not what you want. This is
considered an open issue with this plugin.</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>${basedir}/dependency-reduced-pom.xml</tt></li>
        </ul><hr />
<p><b><a name="dumpClasspath">dumpClasspath</a>:</b></p>
        
<div>File where the BND class-path will be dumped</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>dumpClasspath</tt></li>
        </ul><hr />
<p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
        
<div>File where the BND instructions will be dumped</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>dumpInstructions</tt></li>
        </ul><hr />
<p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
        
<div>Comma separated list of artifactIds to exclude from the dependency
classpath passed to BND (use &quot;true&quot; to exclude everything)</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>excludeDependencies</tt></li>
        </ul><hr />
<p><b><a name="exportScr">exportScr</a>:</b></p>
        
<div>When true, dump the generated SCR files</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="finalName">finalName</a>:</b></p>
        
<div>Final name of the bundle (without classifier or extension)</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.finalName}</tt></li>
        </ul><hr />
<p><b><a name="instructions">instructions</a>:</b></p>
        
<div>The BND instructions for the bundle. Maven will expand property
macros in these values. If you want to use a BND macro, you must
double the dollar sign for the plugin to pass it to BND correctly.
For example: <br />
<tt>&lt;_consumer-policy&gt;$${range;[===,+)</tt><tt>}</tt><tt>&lt;/_consumer-policy&gt;</tt></div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.Map</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
        
<div>Directory where the manifest will be written</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>manifestLocation</tt></li>
          
<li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
        </ul><hr />
<p><b><a name="niceManifest">niceManifest</a>:</b></p>
        
<div>Output a nicely formatted manifest that still respects the 72
character line limit.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>niceManifest</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
        
<div>The directory for the generated bundles.</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.outputDirectory}</tt></li>
        </ul><hr />
<p><b><a name="packaging">packaging</a>:</b></p>
        
<div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
Defaults to none which means use the same packaging as the project.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="scrLocation">scrLocation</a>:</b></p>
        
<div>Directory where the SCR files will be written</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.outputDirectory}</tt></li>
        </ul><hr />
<p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
        
<div>Project types which this plugin supports.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.List</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
        
<div>When true, unpack the bundle contents to the outputDirectory</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>unpackBundle</tt></li>
        </ul>
      </div>
    </div>
  

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

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                              <p >Copyright &copy;                    2006&#x2013;2017
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

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