<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2018-12-17
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<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="20181217" />
    <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.3.0.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.0.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: 2018-12-17</li>
                  <li class="divider">|</li> <li id="projectVersion">Version: 1.3.0</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">Tycho Extras</li>
                                
      <li>
    
                          <a href="../index.html" title="Introduction">
          <i class="none"></i>
        Introduction</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-p2-extras-plugin/plugin-info.html" title="P2 Extras Plugin">
          <i class="none"></i>
        P2 Extras Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../target-platform-validation-plugin/plugin-info.html" title="Target Platform Validation Plugin">
          <i class="none"></i>
        Target Platform Validation Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-eclipserun-plugin/plugin-info.html" title="Eclipserun Plugin">
          <i class="none"></i>
        Eclipserun Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-document-bundle-plugin/plugin-info.html" title="Document Bundle Plugin">
          <i class="none"></i>
        Document Bundle Plugin</a>
            </li>
                  
      <li>
    
                          <a href="../tycho-source-feature-plugin/plugin-info.html" title="Source Feature Generation Plugin">
          <i class="none"></i>
        Source Feature Generation Plugin</a>
            </li>
                                                                                
      <li>
    
                          <a href="../tycho-pack200/index.html" title="Pack200 Plugins">
          <i class="icon-chevron-down"></i>
        Pack200 Plugins</a>
                    <ul class="nav nav-list">
                      
      <li>
    
                          <a href="../tycho-pack200/tycho-pack200a-plugin/plugin-info.html" title="Normalization Plugin">
          <i class="none"></i>
        Normalization Plugin</a>
            </li>
                      
      <li>
    
                          <a href="../tycho-pack200/tycho-pack200b-plugin/plugin-info.html" title="Pack Plugin">
          <i class="none"></i>
        Pack Plugin</a>
            </li>
              </ul>
        </li>
            </ul>
                
                    
                
          <hr class="divider" />

           <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>
        </div>
        
                
        <div id="bodyColumn"  class="span9" >
                                  
            
  
    <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.3.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="abuildDirectory"></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="acleanFirst"></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="ajavadocOptions"></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="aoutputDirectory"></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="ascopes"></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="askipTocGen"></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="asourceTypes"></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="atocFile"></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="atocOptions"></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 span12">Copyright &copy;                    2010-2018
                        <a href="http://www.eclipse.org/">Eclipse Foundation</a>.
            All Rights Reserved.      
                    
      </div>

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