<!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:deploy-file</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:deploy-file<a name="bundle:deploy-file"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.apache.felix:maven-bundle-plugin:2.4.0-SNAPSHOT:deploy-file</p>
      <p><b>Description</b>:</p>
      <div>Deploys bundle details to a remote OBR repository (command-line
goal)</div>
      <p><b>Attributes</b>:</p>
      <ul>
        <li>Binds by default to the lifecycle phase: <tt>deploy</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="#repositoryId">repositoryId</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Remote repository id, used to lookup authentication settings.<br /><b>Default value is</b>: <tt>remote-repository</tt>.</td>
          </tr>
          <tr class="a">
            <td><b><a href="#url">url</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Remote OBR repository URL, where the bundle details are to be
uploaded.<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="#artifactId">artifactId</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>ArtifactId of the bundle. Retrieved from POM file if specified.<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#bundleUrl">bundleUrl</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Optional public URL where the bundle has been deployed.<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. Defaults to none.<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#file">file</a></b></td>
            <td><tt>File</tt></td>
            <td><tt>-</tt></td>
            <td>Bundle file, defaults to the artifact in the local Maven
repository.<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#groupId">groupId</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>GroupId of the bundle. Retrieved from POM file if specified.<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#ignoreLock">ignoreLock</a></b></td>
            <td><tt>boolean</tt></td>
            <td><tt>-</tt></td>
            <td>When true, ignore remote locking.<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#obrRepository">obrRepository</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Local OBR Repository.<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#obrXml">obrXml</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Optional XML file describing additional requirements and
capabilities.<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. Retrieved from POM file if specified.<br /></td>
          </tr>
          <tr class="a">
            <td><b><a href="#pomFile">pomFile</a></b></td>
            <td><tt>File</tt></td>
            <td><tt>-</tt></td>
            <td>Location of an existing POM file.<br /></td>
          </tr>
          <tr class="b">
            <td><b><a href="#remoteOBR">remoteOBR</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Remote OBR Repository.<br /></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="#version">version</a></b></td>
            <td><tt>String</tt></td>
            <td><tt>-</tt></td>
            <td>Version of the bundle. Retrieved from POM file if specified.<br /></td>
          </tr>
        </table>
      </div>
      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
        <p><b><a name="artifactId">artifactId</a>:</b></p>
        <div>ArtifactId of the bundle. Retrieved from POM file if specified.</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>${artifactId}</tt></li>
        </ul><hr /><p><b><a name="bundleUrl">bundleUrl</a>:</b></p>
        <div>Optional public URL where the bundle has been deployed.</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>${bundleUrl}</tt></li>
        </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
        <div>Classifier type of the bundle. Defaults to none.</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>${classifier}</tt></li>
        </ul><hr /><p><b><a name="file">file</a>:</b></p>
        <div>Bundle file, defaults to the artifact in the local Maven
repository.</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>${file}</tt></li>
        </ul><hr /><p><b><a name="groupId">groupId</a>:</b></p>
        <div>GroupId of the bundle. Retrieved from POM file if specified.</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>${groupId}</tt></li>
        </ul><hr /><p><b><a name="ignoreLock">ignoreLock</a>:</b></p>
        <div>When true, ignore remote locking.</div>
        <ul>
          <li><b>Type</b>: <tt>boolean</tt></li>
          <li><b>Required</b>: <tt>No</tt></li>
          <li><b>Expression</b>: <tt>${ignoreLock}</tt></li>
        </ul><hr /><p><b><a name="obrRepository">obrRepository</a>:</b></p>
        <div>Local OBR Repository.</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>${obrRepository}</tt></li>
        </ul><hr /><p><b><a name="obrXml">obrXml</a>:</b></p>
        <div>Optional XML file describing additional requirements and
capabilities.</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>${obrXml}</tt></li>
        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
        <div>Packaging type of the bundle. Retrieved from POM file if specified.</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>${packaging}</tt></li>
        </ul><hr /><p><b><a name="pomFile">pomFile</a>:</b></p>
        <div>Location of an existing POM file.</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>${pomFile}</tt></li>
        </ul><hr /><p><b><a name="remoteOBR">remoteOBR</a>:</b></p>
        <div>Remote OBR Repository.</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>${remoteOBR}</tt></li>
        </ul><hr /><p><b><a name="repositoryId">repositoryId</a>:</b></p>
        <div>Remote repository id, used to lookup authentication settings.</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>${repositoryId}</tt></li>
          <li><b>Default</b>: <tt>remote-repository</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="url">url</a>:</b></p>
        <div>Remote OBR repository URL, where the bundle details are to be
uploaded.</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>${url}</tt></li>
        </ul><hr /><p><b><a name="version">version</a>:</b></p>
        <div>Version of the bundle. Retrieved from POM file if specified.</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>${version}</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>
