<!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 Jul 5, 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:wrap</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="20110705" />

    <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-07-05</span>

                  &nbsp;| <span id="projectVersion">Version: 2.3.5</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:wrap<a name="bundle:wrap"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.apache.felix:maven-bundle-plugin:2.3.5:wrap</p>
      <p><b>This plugin goal has been deprecated</b>:</p>
      <div>The wrap goal is no longer supported and may be removed in a future
release</div>
      <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>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="#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="b">
            <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="a">
            <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="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>

