<!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: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="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:deploy-file<a name="bundle:deploy-file"></a></h2>
      <p><b>Full name</b>:</p>
      <p>org.apache.felix:maven-bundle-plugin:2.3.5: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>

