<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Nov 28, 2011 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Maven Bundle Plugin - 
    bundle:bundleall</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20111128" />
    <meta http-equiv="Content-Language" content="en" />
        
  </head>
  <body class="composite">
    <div id="banner">
                    <div id="bannerLeft">
                Maven Bundle Plugin
                </div>
                    <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
        
                <div class="xleft">
        <span id="publishDate">Last Published: 2011-11-28</span>
                  &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                      </div>
            <div class="xright">        
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
        
                                <h5>Overview</h5>
                  <ul>
                  <li class="none">
                          <a href="index.html" title="Introduction">Introduction</a>
            </li>
                  <li class="none">
                          <a href="plugin-info.html" title="Goals">Goals</a>
            </li>
                  <li class="none">
                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
            </li>
                  <li class="none">
                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
            </li>
                  <li class="none">
                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
            </li>
          </ul>
                       <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                                                <li class="collapsed">
                          <a href="project-info.html" title="Project Information">Project Information</a>
                  </li>
                                                                                                                                            <li class="collapsed">
                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
                  </li>
          </ul>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                   
        
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        
  
    <div class="section"><h2>bundle:bundleall<a name="bundle:bundleall"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.apache.felix:maven-bundle-plugin:2.4.0-SNAPSHOT:bundleall</p>
      <p><b>This plugin goal has been deprecated</b>:</p>
      <div>The bundleall goal is no longer supported and may be removed in a
future release</div>
      <p><b>Description</b>:</p>
      <div>Create OSGi bundles from all dependencies in the 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 lifecycle phase: <tt>package</tt>.</li>
      </ul>
      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
        <table class="bodyTable" 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="#buildDirectory">buildDirectory</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>The directory for the generated JAR.<br /></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 /></td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
        <table class="bodyTable" 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="#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="b">
            <td><b><a href="#depth">depth</a></b></td>
            <td><tt>int</tt></td>
            <td><tt>-</tt></td>
            <td>Process up to some depth<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 /></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 /></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 /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#ignoreMissingArtifacts">ignoreMissingArtifacts</a></b></td>
            <td><tt>boolean</tt></td>
            <td><tt>-</tt></td>
            <td>Ignore missing artifacts that are not required by current project
but are required by the transitive dependencies.<br /></td>
          </tr>
          <tr class="a">
            <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.<br /></td>
          </tr>
          <tr class="b">
            <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>.</td>
          </tr>
          <tr class="a">
            <td><b><a href="#rebuildBundle">rebuildBundle</a></b></td>
            <td><tt>boolean</tt></td>
            <td><tt>-</tt></td>
            <td>When true, generate the manifest by rebuilding the full bundle in
memory<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 /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#wrapImportPackage">wrapImportPackage</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Import-Package to be used when wrapping dependencies.<br /><b>Default value is</b>: <tt>*</tt>.</td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></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>Yes</tt></li>
          <li><b>Expression</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="depth">depth</a>:</b></p>
        <div>Process up to some depth</div>
        <ul>
          <li><b>Type</b>: <tt>int</tt></li>
          <li><b>Required</b>: <tt>No</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>Expression</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>Expression</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>Expression</b>: <tt>${excludeDependencies}</tt></li>
        </ul><hr /><p><b><a name="ignoreMissingArtifacts">ignoreMissingArtifacts</a>:</b></p>
        <div>Ignore missing artifacts that are not required by current project
but are required by the transitive dependencies.</div>
        <ul>
          <li><b>Type</b>: <tt>boolean</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
        <div>The BND instructions for the bundle.</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>Expression</b>: <tt>${manifestLocation}</tt></li>
          <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</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>Yes</tt></li>
          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
        </ul><hr /><p><b><a name="rebuildBundle">rebuildBundle</a>:</b></p>
        <div>When true, generate the manifest by rebuilding the full bundle in
memory</div>
        <ul>
          <li><b>Type</b>: <tt>boolean</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${rebuildBundle}</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>Expression</b>: <tt>${unpackBundle}</tt></li>
        </ul><hr /><p><b><a name="wrapImportPackage">wrapImportPackage</a>:</b></p>
        <div>Import-Package to be used when wrapping dependencies.</div>
        <ul>
          <li><b>Type</b>: <tt>java.lang.String</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${wrapImportPackage}</tt></li>
          <li><b>Default</b>: <tt>*</tt></li>
        </ul>
      </div>
    </div>
  

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2006-2011
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
