<!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 - Introduction</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="author" content="Stuart McCulloch" />

    <meta name="Date-Creation-yyyymmdd" content="20110628" />

    <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">

            <strong>Introduction</strong>

          </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="expanded">

                          <a href="project-info.html" title="Project Information">Project Information</a>

                    <ul>

                      <li class="none">

            <strong>About</strong>

          </li>

                      <li class="none">

                          <a href="dependencies.html" title="Dependencies">Dependencies</a>

            </li>

                      <li class="none">

                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>

            </li>

                      <li class="none">

                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>

            </li>

                      <li class="none">

                          <a href="license.html" title="Project License">Project License</a>

            </li>

                      <li class="none">

                          <a href="team-list.html" title="Project Team">Project Team</a>

            </li>

                      <li class="none">

                          <a href="source-repository.html" title="Source Repository">Source Repository</a>

            </li>

              </ul>

        </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">

        <!-- Licensed to the Apache Software Foundation (ASF) under one --><!-- or more contributor license agreements.  See the NOTICE file --><!-- distributed with this work for additional information --><!-- regarding copyright ownership.  The ASF licenses this file --><!-- to you under the Apache License, Version 2.0 (the --><!-- "License"); you may not use this file except in compliance --><!-- with the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, --><!-- software distributed under the License is distributed on an --><!-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --><!-- KIND, either express or implied.  See the License for the --><!-- specific language governing permissions and limitations --><!-- under the License. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/doxia/references/apt-format.html --><div class="section"><h2>Maven Bundle Plugin<a name="Maven_Bundle_Plugin"></a></h2><p>This Maven 2 plugin is based on the <a class="externalLink" href="http://www.aqute.biz/Bnd/Bnd/">BND</a> tool from Peter Kriens. The way BND works is by treating your project as a big collection of classes (e.g., project code, dependencies, and the class path). The way you create a bundle with BND is to tell it the content of the bundle's JAR file as a subset of the available classes. This plugin wraps BND to make it work specifically with the Maven 2 project structure and to provide it with reasonable default behavior for Maven 2 projects.</p><div class="section"><h3>Goals Overview<a name="Goals_Overview"></a></h3><p>General Information about the goals.</p><ul><li><a href="./bundle-mojo.html">bundle:bundle</a> Create an OSGi bundle from Maven project. (life-cycle goal)</li><li><a href="./manifest-mojo.html">bundle:manifest</a> Generate an OSGi manifest for this project.</li><li><a href="./cleanVersions-mojo.html">bundle:cleanVersions</a> Convert a group of versions to OSGi format.</li><li><a href="./instructions-mojo.html">bundle:instructions</a> Generate BND instructions for this project.</li><li><a href="./install-mojo.html">bundle:install</a> Installs bundle details in the local OBR repository. (life-cycle goal)</li><li><a href="./deploy-mojo.html">bundle:deploy</a> Deploys bundle details to a remote OBR repository. (life-cycle goal)</li><li><a href="./index-mojo.html">bundle:index</a> Index the content of a maven repository using OBR.</li><li><a href="./install-file-mojo.html">bundle:install-file</a> Installs bundle details in the local OBR repository. (command-line goal)</li><li><a href="./deploy-file-mojo.html">bundle:deploy-file</a> Deploys bundle details to a remote OBR repository. (command-line goal)</li><li><a href="./clean-mojo.html">bundle:clean</a> Clean a local OBR repository by finding and removing missing resources.</li><li><a href="./remote-clean-mojo.html">bundle:remote-clean</a> Clean a remote OBR repository by finding and removing missing resources.</li><li><a href="./ant-mojo.html">bundle:ant</a> Generate Ant script to create the bundle. (you should run ant:ant first)</li></ul></div><div class="section"><h3>Usage<a name="Usage"></a></h3><p>General instructions on how to use the Maven Bundle Plugin can be found on the <a class="externalLink" href="http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html">wiki page</a>. Some more specific use cases are described in the examples given below.</p><p>In case you still have questions regarding the plugin's usage, please have a look at the <a class="externalLink" href="http://felix.apache.org/site/apache-felix-bundle-plugin-faq.html">FAQ</a> and feel free to contact the <a class="externalLink" href="http://felix.apache.org/site/mailinglists.html">user mailing list</a>. The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching the <a class="externalLink" href="http://www.mail-archive.com/users@felix.apache.org/">mail archive</a>.</p><p>If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our <a href="./issue-tracking.html">issue tracker</a>. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our <a href="./source-repository.html">source repository</a> and will find supplementary information in the <a class="externalLink" href="http://felix.apache.org/site/development.html">Apache Felix developers guide</a>. </p></div><div class="section"><h3>Examples<a name="Examples"></a></h3><p>To provide you with better understanding on some usages of the Maven Bundle Plugin, you can take a look into the following examples:</p><ul><li>Examples coming soon!</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>

