<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2019-08-19 
 | Rendered using Apache Maven Fluido Skin 1.3.1
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20190819" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Maven Bundle Plugin &#x2013; bundle:ant</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.1.min.js"></script>

    
                  </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                <div id="bannerLeft">
                <h2>Maven Bundle Plugin</h2>
                </div>
                      </div>
        <div class="pull-right">  </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                  <li id="publishDate">Last Published: 2019-08-19
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 4.2.1
                      </li>
                      
                
                    
      
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span3">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Overview</li>
                              
      <li>
  
                          <a href="index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                
      <li>
  
                          <a href="plugin-info.html" title="Goals">
          <i class="none"></i>
        Goals</a>
            </li>
                
      <li>
  
                          <a href="../../documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html" title="Documentation">
          <i class="none"></i>
        Documentation</a>
            </li>
                
      <li>
  
                          <a href="../../documentation/faqs/apache-felix-bundle-plugin-faq.html" title="FAQ">
          <i class="none"></i>
        FAQ</a>
            </li>
                
      <li>
  
                          <a href="jira-report.html" title="Release Notes">
          <i class="none"></i>
        Release Notes</a>
            </li>
                              <li class="nav-header">Project Documentation</li>
                                                                                                                                                                          
      <li>
  
                          <a href="project-info.html" title="Project Information">
          <i class="icon-chevron-right"></i>
        Project Information</a>
                  </li>
                                                                                                                                          
      <li>
  
                          <a href="project-reports.html" title="Project Reports">
          <i class="icon-chevron-right"></i>
        Project Reports</a>
                  </li>
            </ul>
                
                    
                
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span9" >
                                  
            
  
    <div class="section">
<h2><a name="bundle:ant"></a>bundle:ant</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.felix:maven-bundle-plugin:4.2.1:ant</p>
      
<p><b>Description</b>:</p>
      
<div>Generate Ant script to create the bundle (you should run ant:ant
first).</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>
      </ul>
      
<div class="section">
<h3><a name="Optional_Parameters"></a>Optional Parameters</h3>
        
<table class="table table-striped" 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="#buildDirectory">buildDirectory</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The directory for the generated JAR.<br /><b>Default value is</b>: <tt>${project.build.directory}</tt>.<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 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="a">
            
<td><b><a href="#createDependencyReducedPom">createDependencyReducedPom</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>If true, remove any inlined or embedded dependencies from the
resulting pom.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#dependencyReducedPomLocation">dependencyReducedPomLocation</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>Where to put the dependency reduced pom. Note: setting a value for
this parameter with a directory other than ${basedir} will change
the value of ${basedir} for all executions that come after the
shade execution. This is often not what you want. This is
considered an open issue with this plugin.<br /><b>Default value is</b>: <tt>${basedir}/dependency-reduced-pom.xml</tt>.<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 /><b>User property is</b>: <tt>dumpClasspath</tt>.</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 /><b>User property is</b>: <tt>dumpInstructions</tt>.</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 /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#exportScr">exportScr</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>When true, dump the generated SCR files<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#finalName">finalName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Final name of the bundle (without classifier or extension)<br /><b>Default value is</b>: <tt>${project.build.finalName}</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<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. Maven will expand property
macros in these values. If you want to use a BND macro, you must
double the dollar sign for the plugin to pass it to BND correctly.
For example: <br />
<tt>&lt;_consumer-policy&gt;$${range;[===,+)</tt><tt>}</tt><tt>&lt;/_consumer-policy&gt;</tt><br /></td>
          </tr>
          
<tr class="a">
            
<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>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#niceManifest">niceManifest</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Output a nicely formatted manifest that still respects the 72
character line limit.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>niceManifest</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#noWarningProjectTypes">noWarningProjectTypes</a></b></td>
            
<td><tt>List</tt></td>
            
<td><tt>-</tt></td>
            
<td>Project types which are not supported, but silently ignored.<br /></td>
          </tr>
          
<tr class="b">
            
<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 /><b>Default value is</b>: <tt>${project.build.outputDirectory}</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#packaging">packaging</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
Defaults to none which means use the same packaging as the project.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#scrLocation">scrLocation</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>Directory where the SCR files will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}</tt>.<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="#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 /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</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>No</tt></li>
          
<li><b>Default</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="createDependencyReducedPom">createDependencyReducedPom</a>:</b></p>
        
<div>If true, remove any inlined or embedded dependencies from the
resulting pom.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="dependencyReducedPomLocation">dependencyReducedPomLocation</a>:</b></p>
        
<div>Where to put the dependency reduced pom. Note: setting a value for
this parameter with a directory other than ${basedir} will change
the value of ${basedir} for all executions that come after the
shade execution. This is often not what you want. This is
considered an open issue with this plugin.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>${basedir}/dependency-reduced-pom.xml</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>User Property</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>User Property</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>User Property</b>: <tt>excludeDependencies</tt></li>
        </ul><hr />
<p><b><a name="exportScr">exportScr</a>:</b></p>
        
<div>When true, dump the generated SCR files</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="finalName">finalName</a>:</b></p>
        
<div>Final name of the bundle (without classifier or extension)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Default</b>: <tt>${project.build.finalName}</tt></li>
        </ul><hr />
<p><b><a name="instructions">instructions</a>:</b></p>
        
<div>The BND instructions for the bundle. Maven will expand property
macros in these values. If you want to use a BND macro, you must
double the dollar sign for the plugin to pass it to BND correctly.
For example: <br />
<tt>&lt;_consumer-policy&gt;$${range;[===,+)</tt><tt>}</tt><tt>&lt;/_consumer-policy&gt;</tt></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>User Property</b>: <tt>manifestLocation</tt></li>
          
<li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
        </ul><hr />
<p><b><a name="niceManifest">niceManifest</a>:</b></p>
        
<div>Output a nicely formatted manifest that still respects the 72
character line limit.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>niceManifest</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="noWarningProjectTypes">noWarningProjectTypes</a>:</b></p>
        
<div>Project types which are not supported, but silently ignored.</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="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>No</tt></li>
          
<li><b>Default</b>: <tt>${project.build.outputDirectory}</tt></li>
        </ul><hr />
<p><b><a name="packaging">packaging</a>:</b></p>
        
<div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
Defaults to none which means use the same packaging as the project.</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="scrLocation">scrLocation</a>:</b></p>
        
<div>Directory where the SCR files 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>Default</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>User Property</b>: <tt>unpackBundle</tt></li>
        </ul>
      </div>
    </div>
  

                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                              <p >Copyright &copy;                    2006&#x2013;2019
                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

        
        
                </div>
    </footer>
        </body>
</html>
