<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.2 from target/generated-site/xdoc/javadoc-mojo.xml at 2020-08-03
 | Rendered using Apache Maven Fluido Skin 1.9
-->
<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.2" />
    <title>Tycho Document Bundle Plugin &#x2013; tycho-document-bundle:javadoc</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.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.9.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h2>Tycho Document 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-08-03<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.0.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-document-bundle:javadoc"></a>tycho-document-bundle:javadoc</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho.extras:tycho-document-bundle-plugin:2.0.0:javadoc</p>
      
<p><b>Description</b>:</p>
      
<div>Create the javadoc based API reference for this bundle <br />
This mojo creates the javadoc documentation by calling the javadoc
application from the command line. In addition it creates a ready
to include toc-xml file for the Eclipse Help system. <br />
The sources for creating the javadoc are generated automatically
based on the dependency that this project has. As dependency you
can specify any other maven project, for example the feature
project that references you other bundles. Included features will
be added to the list.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven project to be executed.</li>
        
<li>Requires dependency resolution of artifacts in scope: <code>compile+runtime</code>.</li>
        
<li>Since version: <code>0.20.0</code>.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <code>process-classes</code>.</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><code><a href="#buildDirectory">&lt;buildDirectory&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>0.20.0</code></td>
            
<td>The build directory where temporary build files will be placed<br /><b>User property is</b>: <code>project.build.directory</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><code><a href="#outputDirectory">&lt;outputDirectory&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>0.20.0</code></td>
            
<td>The directory where the javadoc content will be generated<br /><b>Default value is</b>: <code>${project.build.directory}/reference/api</code>.<br /><b>User property is</b>: <code>outputDirectory</code>.<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><code><a href="#cleanFirst">&lt;cleanFirst&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>0.20.0</code></td>
            
<td>An option to clean out the whole outputDirectory first.<br /><b>Default value is</b>: <code>true</code>.<br /><b>User property is</b>: <code>cleanFirst</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><code><a href="#javadocOptions">&lt;javadocOptions&gt;</a></code></td>
            
<td><code>JavadocOptions</code></td>
            
<td><code>0.20.0</code></td>
            
<td>Options for calling the javadoc application. Possible options are
(all options are optional): 

<ul>

<li><code>ignoreError</code>, specifies if errors calling javadoc
should be ignored</li>

<li><code>doclet</code>, used as javadoc <code>-doclet</code>
parameter</li>

<li><code>docletArtifacts</code>, dependencies will be resovled and
added as <code>-docletpath</code> parameter</li>

<li><code>encoding</code>, used as javadoc <code>-encoding</code> parameter
(default: <code>${project.build.sourceEncoding}</code></li>

<li><code>additionalArguments</code>, a list of additional arguments
passed to javadoc</li>

<li><code>includes</code>/<code>excludes</code>, the list of names of
packages to be included in or excluded from JavaDoc processing; use
'<code>*</code>' character as wildcard</li>
</ul>
Example configuration: 

<div>
<pre>
<code>
&lt;configuration&amp;gt;
   &lt;javadocOptions&gt;
      &lt;ignoreError&gt;false&lt;/ignoreError&gt;
      &lt;encoding&gt;UTF-8&lt;/encoding&gt;
      &lt;doclet&gt;foo.bar.MyDoclet&lt;/doclet&gt;
      &lt;docletArtifacts&gt;
         &lt;docletArtifact&gt;
            &lt;groupId&gt;foo.bar&lt;/groupId&gt;
            &lt;artifactId&gt;foo.bar.mydocletartifact&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
         &lt;/docletArtifact&gt;
      &lt;/docletArtifacts&gt;
      &lt;includes&gt;
         &lt;include&gt;com.example.*&lt;/include&gt;
      &lt;/includes&gt;
      &lt;excludes&gt;
         &lt;exclude&gt;com.example.internal.*&lt;/exclude&gt;
      &lt;/excludes&gt;
      &lt;additionalArguments&gt;
         &lt;additionalArgument&gt;-windowtitle &quot;The Window Title&quot;&lt;/additionalArgument&gt;
         &lt;additionalArgument&gt;-nosince&lt;/additionalArgument&gt;
      &lt;/additionalArguments&gt;
   &lt;/javadocOptions&gt;
&lt;/configuration&gt;
</code>
</pre></div><br /><b>User property is</b>: <code>javadocOptions</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><code><a href="#scopes">&lt;scopes&gt;</a></code></td>
            
<td><code>Set</code></td>
            
<td><code>0.20.0</code></td>
            
<td>The scopes that the dependencies must have in order to be included<br /><b>Default value is</b>: <code>compile,provided</code>.<br /><b>User property is</b>: <code>scopes</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><code><a href="#skipTocGen">&lt;skipTocGen&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>0.20.0</code></td>
            
<td>Set this property to true to skip the generation of the Eclipse TOC
files.<br /><b>Default value is</b>: <code>false</code>.<br /><b>User property is</b>: <code>skipTocGen</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><code><a href="#sourceTypes">&lt;sourceTypes&gt;</a></code></td>
            
<td><code>Set</code></td>
            
<td><code>0.20.0</code></td>
            
<td>Maven module types that will be used to include the source<br /><b>Default value is</b>: <code>eclipse-plugin</code>.<br /><b>User property is</b>: <code>sourceTypes</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><code><a href="#tocFile">&lt;tocFile&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>0.20.0</code></td>
            
<td>The output location of the toc file.<br />
This file will be overwritten.<br /><b>Default value is</b>: <code>${project.build.directory}/tocjavadoc.xml</code>.<br /><b>User property is</b>: <code>tocFile</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><code><a href="#tocOptions">&lt;tocOptions&gt;</a></code></td>
            
<td><code>TocOptions</code></td>
            
<td><code>0.20.0</code></td>
            
<td>Options for creating the toc files. 

<ul>

<li><code>mainLabel</code>, specifies the main label of the toc file
(default: &quot;API Reference&quot;)</li>

<li><code>mainFilename</code>, specifies the filename of the TOC file
(default: &quot;overview-summary.html&quot;)</li>
</ul>
Example configuration: 

<div>
<pre>
&lt;configuration&gt;
   &lt;tocOptions&gt;
      &lt;mainLabel&gt;My own label&lt;/mainLabel&gt;
      &lt;mainFilename&gt;myOverviewSummary.html&lt;/mainFilename&gt;
   &lt;/tocOptions&gt;
&lt;/configuration&gt;
</pre></div><br /><b>User property is</b>: <code>tocOptions</code>.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <section>
<h4><a name="a.3CbuildDirectory.3E"></a><b><a name="buildDirectory">&lt;buildDirectory&gt;</a></b></h4>
        
<div>The build directory where temporary build files will be placed</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>Yes</code></li>
          
<li><b>User Property</b>: <code>project.build.directory</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcleanFirst.3E"></a><b><a name="cleanFirst">&lt;cleanFirst&gt;</a></b></h4>
        
<div>An option to clean out the whole outputDirectory first.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>cleanFirst</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CjavadocOptions.3E"></a><b><a name="javadocOptions">&lt;javadocOptions&gt;</a></b></h4>
        
<div>Options for calling the javadoc application. Possible options are
(all options are optional): 

<ul>

<li><code>ignoreError</code>, specifies if errors calling javadoc
should be ignored</li>

<li><code>doclet</code>, used as javadoc <code>-doclet</code>
parameter</li>

<li><code>docletArtifacts</code>, dependencies will be resovled and
added as <code>-docletpath</code> parameter</li>

<li><code>encoding</code>, used as javadoc <code>-encoding</code> parameter
(default: <code>${project.build.sourceEncoding}</code></li>

<li><code>additionalArguments</code>, a list of additional arguments
passed to javadoc</li>

<li><code>includes</code>/<code>excludes</code>, the list of names of
packages to be included in or excluded from JavaDoc processing; use
'<code>*</code>' character as wildcard</li>
</ul>
Example configuration: 

<div>
<pre>
<code>
&lt;configuration&amp;gt;
   &lt;javadocOptions&gt;
      &lt;ignoreError&gt;false&lt;/ignoreError&gt;
      &lt;encoding&gt;UTF-8&lt;/encoding&gt;
      &lt;doclet&gt;foo.bar.MyDoclet&lt;/doclet&gt;
      &lt;docletArtifacts&gt;
         &lt;docletArtifact&gt;
            &lt;groupId&gt;foo.bar&lt;/groupId&gt;
            &lt;artifactId&gt;foo.bar.mydocletartifact&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
         &lt;/docletArtifact&gt;
      &lt;/docletArtifacts&gt;
      &lt;includes&gt;
         &lt;include&gt;com.example.*&lt;/include&gt;
      &lt;/includes&gt;
      &lt;excludes&gt;
         &lt;exclude&gt;com.example.internal.*&lt;/exclude&gt;
      &lt;/excludes&gt;
      &lt;additionalArguments&gt;
         &lt;additionalArgument&gt;-windowtitle &quot;The Window Title&quot;&lt;/additionalArgument&gt;
         &lt;additionalArgument&gt;-nosince&lt;/additionalArgument&gt;
      &lt;/additionalArguments&gt;
   &lt;/javadocOptions&gt;
&lt;/configuration&gt;
</code>
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <code>org.eclipse.tycho.extras.docbundle.JavadocOptions</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>javadocOptions</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CoutputDirectory.3E"></a><b><a name="outputDirectory">&lt;outputDirectory&gt;</a></b></h4>
        
<div>The directory where the javadoc content will be generated</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>Yes</code></li>
          
<li><b>User Property</b>: <code>outputDirectory</code></li>
          
<li><b>Default</b>: <code>${project.build.directory}/reference/api</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cscopes.3E"></a><b><a name="scopes">&lt;scopes&gt;</a></b></h4>
        
<div>The scopes that the dependencies must have in order to be included</div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.Set</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>scopes</code></li>
          
<li><b>Default</b>: <code>compile,provided</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CskipTocGen.3E"></a><b><a name="skipTocGen">&lt;skipTocGen&gt;</a></b></h4>
        
<div>Set this property to true to skip the generation of the Eclipse TOC
files.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>skipTocGen</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CsourceTypes.3E"></a><b><a name="sourceTypes">&lt;sourceTypes&gt;</a></b></h4>
        
<div>Maven module types that will be used to include the source</div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.Set</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>sourceTypes</code></li>
          
<li><b>Default</b>: <code>eclipse-plugin</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CtocFile.3E"></a><b><a name="tocFile">&lt;tocFile&gt;</a></b></h4>
        
<div>The output location of the toc file.<br />
This file will be overwritten.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>tocFile</code></li>
          
<li><b>Default</b>: <code>${project.build.directory}/tocjavadoc.xml</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CtocOptions.3E"></a><b><a name="tocOptions">&lt;tocOptions&gt;</a></b></h4>
        
<div>Options for creating the toc files. 

<ul>

<li><code>mainLabel</code>, specifies the main label of the toc file
(default: &quot;API Reference&quot;)</li>

<li><code>mainFilename</code>, specifies the filename of the TOC file
(default: &quot;overview-summary.html&quot;)</li>
</ul>
Example configuration: 

<div>
<pre>
&lt;configuration&gt;
   &lt;tocOptions&gt;
      &lt;mainLabel&gt;My own label&lt;/mainLabel&gt;
      &lt;mainFilename&gt;myOverviewSummary.html&lt;/mainFilename&gt;
   &lt;/tocOptions&gt;
&lt;/configuration&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <code>org.eclipse.tycho.extras.docbundle.TocOptions</code></li>
          
<li><b>Since</b>: <code>0.20.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>tocOptions</code></li>
        </ul>
      </section></section>
    </section>
  

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