<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from target/generated-site/xdoc/javadoc-mojo.xml at 2019-04-05
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<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="20190405" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Tycho Document Bundle Plugin &#x2013; tycho-document-bundle:javadoc</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.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.7.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <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: 2019-04-05<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.4.0</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
    <ul class="nav nav-list">
      <li class="nav-header">Tycho Extras</li>
    <li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
    <li><a href="../tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin"><span class="none"></span>P2 Extras Plugin</a></li>
    <li><a href="../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-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin"><span class="none"></span>Eclipserun Plugin</a></li>
    <li><a href="../tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin"><span class="none"></span>Document Bundle Plugin</a></li>
    <li><a href="../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-pack200/index.html" title="Pack200 Plugins"><span class="icon-chevron-down"></span>Pack200 Plugins</a>
    <ul class="nav nav-list">
    <li><a href="../tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin"><span class="none"></span>Normalization Plugin</a></li>
    <li><a href="../tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin"><span class="none"></span>Pack Plugin</a></li>
    </ul>
</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="span10" >

  
    <div class="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:1.4.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: <tt>compile+runtime</tt>.</li>
        
<li>Since version: <tt>0.20.0</tt>.</li>
        
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>process-classes</tt>.</li>
      </ul>
      
<div class="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><tt><a href="#buildDirectory">&lt;buildDirectory&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>The build directory where temporary build files will be placed<br /><b>User property is</b>: <tt>project.build.directory</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#outputDirectory">&lt;outputDirectory&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>The directory where the javadoc content will be generated<br /><b>Default value is</b>: <tt>${project.build.directory}/reference/api</tt>.<br /><b>User property is</b>: <tt>outputDirectory</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<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><tt><a href="#cleanFirst">&lt;cleanFirst&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>An option to clean out the whole outputDirectory first.<br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>cleanFirst</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#javadocOptions">&lt;javadocOptions&gt;</a></tt></td>
            
<td><tt>JavadocOptions</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>Options for calling the javadoc application. Possible options are
(all options are optional): 

<ul>

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

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

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

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

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

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

<div>
<pre>
&lt;configuration&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;
</pre></div><br /><b>User property is</b>: <tt>javadocOptions</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#scopes">&lt;scopes&gt;</a></tt></td>
            
<td><tt>Set</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>The scopes that the dependencies must have in order to be included<br /><b>Default value is</b>: <tt>compile,provided</tt>.<br /><b>User property is</b>: <tt>scopes</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#skipTocGen">&lt;skipTocGen&gt;</a></tt></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>Set this property to true to skip the generation of the Eclipse TOC
files.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>skipTocGen</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#sourceTypes">&lt;sourceTypes&gt;</a></tt></td>
            
<td><tt>Set</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>Maven module types that will be used to include the source<br /><b>Default value is</b>: <tt>eclipse-plugin</tt>.<br /><b>User property is</b>: <tt>sourceTypes</tt>.<br /></td>
          </tr>
          
<tr class="a">
            
<td><tt><a href="#tocFile">&lt;tocFile&gt;</a></tt></td>
            
<td><tt>File</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>The output location of the toc file.<br />
This file will be overwritten.<br /><b>Default value is</b>: <tt>${project.build.directory}/tocjavadoc.xml</tt>.<br /><b>User property is</b>: <tt>tocFile</tt>.<br /></td>
          </tr>
          
<tr class="b">
            
<td><tt><a href="#tocOptions">&lt;tocOptions&gt;</a></tt></td>
            
<td><tt>TocOptions</tt></td>
            
<td><tt>0.20.0</tt></td>
            
<td>Options for creating the toc files. 

<ul>

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

<li><tt>mainFilename</tt>, 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>: <tt>tocOptions</tt>.<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<div class="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>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>project.build.directory</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>cleanFirst</tt></li>
          
<li><b>Default</b>: <tt>true</tt></li>
        </ul><hr /></div>
<div class="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><tt>ignoreError</tt>, specifies if errors calling javadoc
should be ignored</li>

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

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

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

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

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

<div>
<pre>
&lt;configuration&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;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.eclipse.tycho.extras.docbundle.JavadocOptions</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>javadocOptions</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>Yes</tt></li>
          
<li><b>User Property</b>: <tt>outputDirectory</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/reference/api</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>java.util.Set</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>scopes</tt></li>
          
<li><b>Default</b>: <tt>compile,provided</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>boolean</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>skipTocGen</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>java.util.Set</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>sourceTypes</tt></li>
          
<li><b>Default</b>: <tt>eclipse-plugin</tt></li>
        </ul><hr /></div>
<div class="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>: <tt>java.io.File</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>tocFile</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/tocjavadoc.xml</tt></li>
        </ul><hr /></div>
<div class="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><tt>mainLabel</tt>, specifies the main label of the toc file
(default: &quot;API Reference&quot;)</li>

<li><tt>mainFilename</tt>, 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>: <tt>org.eclipse.tycho.extras.docbundle.TocOptions</tt></li>
          
<li><b>Since</b>: <tt>0.20.0</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>User Property</b>: <tt>tocOptions</tt></li>
        </ul>
      </div></div>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2010&#x2013;2019
<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
All rights reserved.</p>
        </div>
      </div>
    </footer>
  </body>
</html>
