<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.1 from target/generated-site/xdoc/custom-bundle-mojo.xml at 2020-04-06
 | Rendered using Apache Maven Fluido Skin 1.8
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
    <title>Tycho Custom Bundle Plugin &#x2013; tycho-custom-bundle:custom-bundle</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.8.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h2>Tycho Custom 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: 2020-04-06<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.0</li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">Tycho</li>
    <li><a href="../../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin"><span class="none"></span>Compiler Plugin</a></li>
    <li><a href="../../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin"><span class="none"></span>Packaging Plugin</a></li>
    <li><a href="../../tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin"><span class="none"></span>Surefire Plugin</a></li>
    <li><a href="../../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin"><span class="none"></span>p2 Publisher Plugin</a></li>
    <li><a href="../../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin"><span class="none"></span>p2 Repository Plugin</a></li>
    <li><a href="../../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin"><span class="none"></span>p2 Director Plugin</a></li>
    <li><a href="../../tycho-source-plugin/plugin-info.html" title="Source Plugin"><span class="none"></span>Source Plugin</a></li>
    <li><a href="../../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin"><span class="none"></span>Versions Plugin</a></li>
    <li><a href="../../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin"><span class="none"></span>POM Generator Plugin</a></li>
    <li><a href="" title="Properties"><span class="icon-chevron-down"></span>Properties</a>
     <ul class="nav nav-list">
      <li><a href="../../BuildProperties.html" title="Build Properties"><span class="none"></span>Build Properties</a></li>
      <li><a href="../../TychoProperties.html" title="Tycho Properties"><span class="none"></span>Tycho Properties</a></li>
     </ul></li>
   <li class="nav-header">Tycho Extras</li>
    <li><a href="../../tycho-extras/index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../../tycho-extras/tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin"><span class="none"></span>P2 Extras Plugin</a></li>
    <li><a href="../../tycho-extras/target-platform-validation-plugin/plugin-info.html" title="Target Platform Validation Plugin"><span class="none"></span>Target Platform Validation Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin"><span class="none"></span>Eclipserun Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin"><span class="none"></span>Document Bundle Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-source-feature-plugin/plugin-info.html" title="Source Feature Generation Plugin"><span class="none"></span>Source Feature Generation Plugin</a></li>
    <li><a href="../../tycho-extras/tycho-pack200/index.html" title="Pack200 Plugins"><span class="icon-chevron-down"></span>Pack200 Plugins</a>
     <ul class="nav nav-list">
      <li><a href="../../tycho-extras/tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin"><span class="none"></span>Normalization Plugin</a></li>
      <li><a href="../../tycho-extras/tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin"><span class="none"></span>Pack Plugin</a></li>
     </ul></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
            <hr />
            <div id="poweredBy">
              <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>
        </header>
        <main id="bodyColumn"  class="span10" >

  
    <section>
<h2><a name="tycho-custom-bundle:custom-bundle"></a>tycho-custom-bundle:custom-bundle</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho.extras:tycho-custom-bundle-plugin:1.7.0:custom-bundle</p>
      
<p><b>Description</b>:</p>
      
<div>Builds OSGi bundle</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
      </ul>
      <section>
<h3><a name="Required_Parameters"></a>Required 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><a href="#bundleLocation">&lt;bundleLocation&gt;</a></td>
            
<td>File</td>
            
<td>-</td>
            
<td>Location of OSGi bundle, must have META-INF/MANIFEST.MF bundle
manifest file.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#classifier">&lt;classifier&gt;</a></td>
            
<td>String</td>
            
<td>-</td>
            
<td>Classifier of attached artifact.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#fileSets">&lt;fileSets&gt;</a></td>
            
<td>List</td>
            
<td>-</td>
            
<td>Additional files to be included in the generated bundle.<br /></td>
          </tr>
        </table>
      </section>
      <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><a href="#archive">&lt;archive&gt;</a></td>
            
<td>MavenArchiveConfiguration</td>
            
<td>-</td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#excludes">&lt;excludes&gt;</a></td>
            
<td>String[]</td>
            
<td>-</td>
            
<td>File patterns to exclude from bundleLocation.<br /></td>
          </tr>
          
<tr class="b">
            
<td><a href="#includes">&lt;includes&gt;</a></td>
            
<td>String[]</td>
            
<td>-</td>
            
<td>File patterns to include from bundleLocation. Include everything by
default.<br /></td>
          </tr>
          
<tr class="a">
            
<td><a href="#project">&lt;project&gt;</a></td>
            
<td>MavenProject</td>
            
<td>-</td>
            
<td>(no description)<br /><b>User property is</b>: project.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <section>
<h4><a name="a.3Carchive.3E"></a><b><a name="archive">&lt;archive&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: org.apache.maven.archiver.MavenArchiveConfiguration</li>
          
<li><b>Required</b>: No</li>
        </ul><hr /></section><section>
<h4><a name="a.3CbundleLocation.3E"></a><b><a name="bundleLocation">&lt;bundleLocation&gt;</a></b></h4>
        
<div>Location of OSGi bundle, must have META-INF/MANIFEST.MF bundle
manifest file.</div>
        
<ul>
          
<li><b>Type</b>: java.io.File</li>
          
<li><b>Required</b>: Yes</li>
        </ul><hr /></section><section>
<h4><a name="a.3Cclassifier.3E"></a><b><a name="classifier">&lt;classifier&gt;</a></b></h4>
        
<div>Classifier of attached artifact.</div>
        
<ul>
          
<li><b>Type</b>: java.lang.String</li>
          
<li><b>Required</b>: Yes</li>
        </ul><hr /></section><section>
<h4><a name="a.3Cexcludes.3E"></a><b><a name="excludes">&lt;excludes&gt;</a></b></h4>
        
<div>File patterns to exclude from bundleLocation.</div>
        
<ul>
          
<li><b>Type</b>: java.lang.String[]</li>
          
<li><b>Required</b>: No</li>
        </ul><hr /></section><section>
<h4><a name="a.3CfileSets.3E"></a><b><a name="fileSets">&lt;fileSets&gt;</a></b></h4>
        
<div>Additional files to be included in the generated bundle.</div>
        
<ul>
          
<li><b>Type</b>: java.util.List</li>
          
<li><b>Required</b>: Yes</li>
        </ul><hr /></section><section>
<h4><a name="a.3Cincludes.3E"></a><b><a name="includes">&lt;includes&gt;</a></b></h4>
        
<div>File patterns to include from bundleLocation. Include everything by
default.</div>
        
<ul>
          
<li><b>Type</b>: java.lang.String[]</li>
          
<li><b>Required</b>: No</li>
        </ul><hr /></section><section>
<h4><a name="a.3Cproject.3E"></a><b><a name="project">&lt;project&gt;</a></b></h4>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: org.apache.maven.project.MavenProject</li>
          
<li><b>Required</b>: No</li>
          
<li><b>User Property</b>: project</li>
        </ul>
      </section></section>
    </section>
  

        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &#169;      2008&#x2013;2020<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
