<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from target/generated-site/xdoc/compile-mojo.xml at 2022-01-21
 | Rendered using Apache Maven Fluido Skin 1.10.0
-->
<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.11.1" />
    <title>Tycho OSGi Compiler Plugin &#x2013; tycho-compiler:compile</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.10.0.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.10.0.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><div id="bannerLeft"><h2>Tycho OSGi Compiler 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: 2022-01-21<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 2.6.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="../target-platform-configuration/plugin-info.html" title="Target Platform Configuration"><span class="none"></span>Target Platform Configuration</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-compiler:compile"></a>tycho-compiler:compile</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.eclipse.tycho:tycho-compiler-plugin:2.6.0:compile</p>
      
<p><b>Description</b>:</p>
      
<div>Compiles application sources with eclipse plugin dependencies</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</code>.</li>
        
<li>The goal is thread-safe and supports parallel builds.</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>compile</code>.</li>
      </ul>
      <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 align="left"><code><a href="#annotationProcessors">&lt;annotationProcessors&gt;</a></code></td>
            
<td><code>String[]</code></td>
            
<td><code>0.16.0</code></td>
            
<td>Qualified class names of annotation processors to run. If
specified, the <a class="externalLink" href="http://java.sun.com/javase/6/docs/api/javax/annotation/processing/Processor.html">normal
processor discovery process</a> will be skipped. This parameter
requires a 1.6 VM or above and is used only if the compliance is
1.6<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#compilerArgs">&lt;compilerArgs&gt;</a></code></td>
            
<td><code>List</code></td>
            
<td><code>0.17.0</code></td>
            
<td>Arguments to be passed to the compiler.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#compilerArgument">&lt;compilerArgument&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>
<p>Unformatted argument string to be passed to the compiler if fork
is set to true.</p>

<p>This is because the list of valid arguments passed to a Java
compiler varies based on the compiler version.</p><br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#compilerArguments">&lt;compilerArguments&gt;</a></code></td>
            
<td><code>Map</code></td>
            
<td><code>-</code></td>
            
<td><b>Deprecated.</b> use <code>compilerArgs</code> instead.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#compilerId">&lt;compilerId&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The compiler id of the compiler to use.<br /><b>Default value is</b>: <code>jdt</code>.<br /><b>User property is</b>: <code>maven.compiler.compilerId</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#compilerVersion">&lt;compilerVersion&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>Version of the compiler to use, ex. &quot;1.3&quot;, &quot;1.5&quot;, if fork is set to
true<br /><b>User property is</b>: <code>maven.compiler.compilerVersion</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#copyResources">&lt;copyResources&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Whether all resources in the source folders should be copied to
${project.build.outputDirectory}. <code>true</code> (default) means
that all resources are copied from the source folders to
<code>${project.build.outputDirectory}</code>. <code>false</code>
means that no resources are copied from the source folders to
<code>${project.build.outputDirectory}</code>. Set this to
<code>false</code> in case you want to keep resources separate from
java files in <code>src/main/resources</code> and handle them using
<a class="externalLink" href="http://maven.apache.org/plugins/maven-resources-plugin/">maven-resources-plugin</a>
(e.g. for <a class="externalLink" href="http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html">resource
filtering</a>.<br /><b>Default value is</b>: <code>true</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#debug">&lt;debug&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Whether to include debugging information in the compiled class
files. The default value is true.<br /><b>Default value is</b>: <code>true</code>.<br /><b>User property is</b>: <code>maven.compiler.debug</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#deriveReleaseCompilerArgumentFromTargetLevel">&lt;deriveReleaseCompilerArgumentFromTargetLevel&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Whether the <code>-release</code> argument for the Java compiler
should be derived from the target level. Enabled by default. 

<p>Disabling this can be useful in situations where compiling using
<code>-release</code> cannot be used, e.g. when referencing
internal JDK classes exported via an OSGI framework extension. In
that case <code>&lt;release&gt;</code> should also be explicitly
set to an empty value to prevent it from being inherited.</p><br /><b>Default value is</b>: <code>true</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#encoding">&lt;encoding&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The -encoding argument for the Java compiler<br /><b>User property is</b>: <code>project.build.sourceEncoding</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#excludeResources">&lt;excludeResources&gt;</a></code></td>
            
<td><code>Set</code></td>
            
<td><code>-</code></td>
            
<td>A list of exclusion filters for non-java resource files which
should not be copied to the output directory.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#excludes">&lt;excludes&gt;</a></code></td>
            
<td><code>Set</code></td>
            
<td><code>-</code></td>
            
<td>A list of exclusion filters for the compiler.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#executable">&lt;executable&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The executable of the compiler to use when fork is true.<br /><b>User property is</b>: <code>maven.compiler.executable</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#extraClasspathElements">&lt;extraClasspathElements&gt;</a></code></td>
            
<td><code>Dependency[]</code></td>
            
<td><code>-</code></td>
            
<td>Transitively add specified maven artifacts to compile classpath in
addition to elements calculated according to OSGi rules. All
packages from additional entries will be accessible at compile
time. Useful when OSGi runtime classpath contains elements not
defined using normal dependency mechanisms. For example, when
Eclipse Equinox is started from application server with
-Dosgi.parentClassloader=fwk parameter.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#failOnWarning">&lt;failOnWarning&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Fail on warnings<br /><b>Default value is</b>: <code>false</code>.<br /><b>User property is</b>: <code>maven.compiler.failOnWarning</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#fork">&lt;fork&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Allows running the compiler in a separate process. If &quot;false&quot; it
uses the built in compiler, while if &quot;true&quot; it will use an
executable.<br /><b>Default value is</b>: <code>false</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#generatedSourcesDirectory">&lt;generatedSourcesDirectory&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>0.16.0</code></td>
            
<td>The directory where source files generated by annotation processors
will be created. This parameter requires a 1.6 VM or above and is
used only if the compliance is 1.6.<br /><b>Default value is</b>: <code>${project.build.directory}/generated-sources/annotations</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#includes">&lt;includes&gt;</a></code></td>
            
<td><code>Set</code></td>
            
<td><code>-</code></td>
            
<td>A list of inclusion filters for the compiler.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#log">&lt;log&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The format of the compiler log file. <code>plain</code> will log
into a plain text file (.log), <code>xml</code> will log in xml
format (.xml). If omitted, no logging into files is done. The log
file name is derived from the jar file name: 

<div>
<pre>
Example:
build.properties:

output.lib1/library.jar = lib1bin/ 
output.lib2/library.jar = lib2bin/ 
output.. = bin/

And a configuration:

&lt;configuration&gt;
  &lt;logEnabled&gt;true&lt;/logEnabled&gt;
  &lt;logDirectory&gt;${project.build.directory}/logfiles&lt;/logDirectory&gt;
  &lt;log&gt;xml&lt;/log&gt; 
&lt;/configuration&gt;

Will produce the following log files

${project.build.directory}/logfiles/@dot.xml
${project.build.directory}/logfiles/lib1_library.jar.xml
${project.build.directory}/logfiles/lib2_library.jar.xml
</pre></div><br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#logDirectory">&lt;logDirectory&gt;</a></code></td>
            
<td><code>File</code></td>
            
<td><code>-</code></td>
            
<td>The directory where the compiler log files should be placed. For
each output jar a log file will be created and stored in this
directory. Logging into files is only enabled if <code>log</code>
is specified. Default:
<code>${project.build.directory}/compile-logs</code><br /><b>Default value is</b>: <code>${project.build.directory}/compile-logs</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#maxmem">&lt;maxmem&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>maximum size, in megabytes, of the memory allocation pool, ex.
&quot;128&quot;, &quot;128m&quot; if fork is set to true<br /><b>User property is</b>: <code>maven.compiler.maxmem</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#meminitial">&lt;meminitial&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>Initial size, in megabytes, of the memory allocation pool, ex.
&quot;64&quot;, &quot;64m&quot; if fork is set to true<br /><b>User property is</b>: <code>maven.compiler.meminitial</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#optimize">&lt;optimize&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Optimize compiled code using the compiler's optimization methods<br /><b>Default value is</b>: <code>false</code>.<br /><b>User property is</b>: <code>maven.compiler.optimize</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#outputFileName">&lt;outputFileName&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>Used to control the name of the output file when compiling a set of
sources to a single file.<br /><b>User property is</b>: <code>project.build.finalName</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#proc">&lt;proc&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>0.16.0</code></td>
            
<td>If <code>only</code> is specified, the annotation processors will run
but no compilation will be performed. If <code>none</code> is
specified, annotation processors will not be discovered or run;
compilation will proceed as if no annotation processors were found.
By default the compiler must search the classpath for annotation
processors, so specifying <code>none</code> may speed compilation if
annotation processing is not required. This parameter requires a
1.6 VM or above and is used only if the compliance is 1.6<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#release">&lt;release&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The -release argument for the Java compiler<br /><b>User property is</b>: <code>maven.compiler.release</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#requireJREPackageImports">&lt;requireJREPackageImports&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Whether a bundle is required to explicitly import non-java.*
packages from the JDK. This is the design-time equivalent to the
equinox runtime option <a class="externalLink" href="https://wiki.eclipse.org/Equinox_Boot_Delegation#The_solution">osgi.compatibility.bootdelegation</a>.<br /><b>Default value is</b>: <code>false</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#showDeprecation">&lt;showDeprecation&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Output source locations where deprecated APIs are used<br /><b>Default value is</b>: <code>false</code>.<br /><b>User property is</b>: <code>maven.compiler.showDeprecation</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#showWarnings">&lt;showWarnings&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Output warnings<br /><b>Default value is</b>: <code>false</code>.<br /><b>User property is</b>: <code>maven.compiler.showWarnings</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#source">&lt;source&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The -source argument for the Java compiler<br /><b>User property is</b>: <code>maven.compiler.source</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#staleMillis">&lt;staleMillis&gt;</a></code></td>
            
<td><code>int</code></td>
            
<td><code>-</code></td>
            
<td>The granularity in milliseconds of the last modification date for
testing whether a source needs recompilation<br /><b>Default value is</b>: <code>0</code>.<br /><b>User property is</b>: <code>lastModGranularityMs</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#strictCompilerTarget">&lt;strictCompilerTarget&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>If set to <code>false</code> (the default) issue a warning if
effective compiler target level is incompatible with bundle minimal
execution environment. If set to <code>true</code> will fail the
build if effective compiler target and minimal BREE are
incompatible.<br /><b>Default value is</b>: <code>false</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#target">&lt;target&gt;</a></code></td>
            
<td><code>String</code></td>
            
<td><code>-</code></td>
            
<td>The -target argument for the Java compiler<br /><b>User property is</b>: <code>maven.compiler.target</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#useJDK">&lt;useJDK&gt;</a></code></td>
            
<td><code>ToolchainProvider$JDKUsage</code></td>
            
<td><code>-</code></td>
            
<td>Which JDK to use for compilation. Default value is SYSTEM which
means the currently running JDK. If BREE is specified, MANIFEST
header <code>Bundle-RequiredExecutionEnvironment</code> is used to
define the JDK to compile against. In this case, you need to
provide a <a class="externalLink" href="http://maven.apache.org/guides/mini/guide-using-toolchains.html">toolchains.xml</a>
configuration file. The value of BREE will be matched against the
id of the toolchain elements in toolchains.xml. Example: 

<div>
<pre>
&lt;toolchains&gt;
  &lt;toolchain&gt;
     &lt;type&gt;jdk&lt;/type&gt;
     &lt;provides&gt;
         &lt;id&gt;J2SE-1.5&lt;/id&gt;
     &lt;/provides&gt;
     &lt;configuration&gt;
        &lt;jdkHome&gt;/path/to/jdk/1.5&lt;/jdkHome&gt;
     &lt;/configuration&gt;
  &lt;/toolchain&gt;
&lt;/toolchains&gt;
</pre></div>

The default value of the bootclasspath used for compilation is
<code>&lt;jdkHome&gt;/lib/*;&lt;jdkHome&gt;/lib/ext/*;&lt;jdkHome&gt;/lib/endorsed/*</code>
. For JDKs with different filesystem layouts, the bootclasspath can
be specified explicitly in the configuration section. Example: 

<div>
<pre>
&lt;configuration&gt;
  &lt;jdkHome&gt;/path/to/jdk/1.5&lt;/jdkHome&gt;
  &lt;bootClassPath&gt;
    &lt;includes&gt;
      &lt;include&gt;jre/lib/amd64/default/jclSC160/*.jar&lt;/include&gt;
    &lt;/includes&gt;
    &lt;excludes&gt;
      &lt;exclude&gt;**/alt-*.jar&lt;/exclude&gt;
    &lt;/excludes&gt;
  &lt;/bootClassPath&gt;
&lt;/configuration&gt;
</pre></div><br /><b>Default value is</b>: <code>SYSTEM</code>.<br /></td>
          </tr>
          
<tr class="b">
            
<td align="left"><code><a href="#useProjectSettings">&lt;useProjectSettings&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>If set to <code>true</code>, the settings file
${project.basedir}/.settings/org.eclipse.jdt.core.prefs will be
passed to the compiler. If the file is not present, the build will
not fail.<br /><b>Default value is</b>: <code>true</code>.<br /></td>
          </tr>
          
<tr class="a">
            
<td align="left"><code><a href="#verbose">&lt;verbose&gt;</a></code></td>
            
<td><code>boolean</code></td>
            
<td><code>-</code></td>
            
<td>Whether to output messages about what the compiler is doing<br /><b>Default value is</b>: <code>false</code>.<br /><b>User property is</b>: <code>maven.compiler.verbose</code>.<br /></td>
          </tr>
        </table>
      </section>
      <section>
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        <section>
<h4><a name="a.3CannotationProcessors.3E"></a><b><a name="annotationProcessors">&lt;annotationProcessors&gt;</a></b></h4>
        
<div>Qualified class names of annotation processors to run. If
specified, the <a class="externalLink" href="http://java.sun.com/javase/6/docs/api/javax/annotation/processing/Processor.html">normal
processor discovery process</a> will be skipped. This parameter
requires a 1.6 VM or above and is used only if the compliance is
1.6</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String[]</code></li>
          
<li><b>Since</b>: <code>0.16.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcompilerArgs.3E"></a><b><a name="compilerArgs">&lt;compilerArgs&gt;</a></b></h4>
        
<div>Arguments to be passed to the compiler.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.List</code></li>
          
<li><b>Since</b>: <code>0.17.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcompilerArgument.3E"></a><b><a name="compilerArgument">&lt;compilerArgument&gt;</a></b></h4>
        
<div>
<p>Unformatted argument string to be passed to the compiler if fork
is set to true.</p>

<p>This is because the list of valid arguments passed to a Java
compiler varies based on the compiler version.</p></div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcompilerArguments.3E"></a><b><a name="compilerArguments">&lt;compilerArguments&gt;</a></b></h4>
        
<div><b>Deprecated.</b> use <code>compilerArgs</code> instead.</div>
        
<div>
<p>Arguments to be passed to the compiler (prepending a dash) if
fork is set to true.</p>

<p>This is because the list of valid arguments passed to a Java
compiler varies based on the compiler version.</p></div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.Map</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcompilerId.3E"></a><b><a name="compilerId">&lt;compilerId&gt;</a></b></h4>
        
<div>The compiler id of the compiler to use.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.compilerId</code></li>
          
<li><b>Default</b>: <code>jdt</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcompilerVersion.3E"></a><b><a name="compilerVersion">&lt;compilerVersion&gt;</a></b></h4>
        
<div>Version of the compiler to use, ex. &quot;1.3&quot;, &quot;1.5&quot;, if fork is set to
true</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.compilerVersion</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CcopyResources.3E"></a><b><a name="copyResources">&lt;copyResources&gt;</a></b></h4>
        
<div>Whether all resources in the source folders should be copied to
${project.build.outputDirectory}. <code>true</code> (default) means
that all resources are copied from the source folders to
<code>${project.build.outputDirectory}</code>. <code>false</code>
means that no resources are copied from the source folders to
<code>${project.build.outputDirectory}</code>. Set this to
<code>false</code> in case you want to keep resources separate from
java files in <code>src/main/resources</code> and handle them using
<a class="externalLink" href="http://maven.apache.org/plugins/maven-resources-plugin/">maven-resources-plugin</a>
(e.g. for <a class="externalLink" href="http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html">resource
filtering</a>.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cdebug.3E"></a><b><a name="debug">&lt;debug&gt;</a></b></h4>
        
<div>Whether to include debugging information in the compiled class
files. The default value is true.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.debug</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CderiveReleaseCompilerArgumentFromTargetLevel.3E"></a><b><a name="deriveReleaseCompilerArgumentFromTargetLevel">&lt;deriveReleaseCompilerArgumentFromTargetLevel&gt;</a></b></h4>
        
<div>Whether the <code>-release</code> argument for the Java compiler
should be derived from the target level. Enabled by default. 

<p>Disabling this can be useful in situations where compiling using
<code>-release</code> cannot be used, e.g. when referencing
internal JDK classes exported via an OSGI framework extension. In
that case <code>&lt;release&gt;</code> should also be explicitly
set to an empty value to prevent it from being inherited.</p></div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cencoding.3E"></a><b><a name="encoding">&lt;encoding&gt;</a></b></h4>
        
<div>The -encoding argument for the Java compiler</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>project.build.sourceEncoding</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CexcludeResources.3E"></a><b><a name="excludeResources">&lt;excludeResources&gt;</a></b></h4>
        
<div>A list of exclusion filters for non-java resource files which
should not be copied to the output directory.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.Set</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cexcludes.3E"></a><b><a name="excludes">&lt;excludes&gt;</a></b></h4>
        
<div>A list of exclusion filters for the compiler.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.Set</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cexecutable.3E"></a><b><a name="executable">&lt;executable&gt;</a></b></h4>
        
<div>The executable of the compiler to use when fork is true.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.executable</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CextraClasspathElements.3E"></a><b><a name="extraClasspathElements">&lt;extraClasspathElements&gt;</a></b></h4>
        
<div>Transitively add specified maven artifacts to compile classpath in
addition to elements calculated according to OSGi rules. All
packages from additional entries will be accessible at compile
time. Useful when OSGi runtime classpath contains elements not
defined using normal dependency mechanisms. For example, when
Eclipse Equinox is started from application server with
-Dosgi.parentClassloader=fwk parameter.</div>
        
<ul>
          
<li><b>Type</b>: <code>org.apache.maven.model.Dependency[]</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CfailOnWarning.3E"></a><b><a name="failOnWarning">&lt;failOnWarning&gt;</a></b></h4>
        
<div>Fail on warnings</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.failOnWarning</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cfork.3E"></a><b><a name="fork">&lt;fork&gt;</a></b></h4>
        
<div>Allows running the compiler in a separate process. If &quot;false&quot; it
uses the built in compiler, while if &quot;true&quot; it will use an
executable.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CgeneratedSourcesDirectory.3E"></a><b><a name="generatedSourcesDirectory">&lt;generatedSourcesDirectory&gt;</a></b></h4>
        
<div>The directory where source files generated by annotation processors
will be created. This parameter requires a 1.6 VM or above and is
used only if the compliance is 1.6.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Since</b>: <code>0.16.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>${project.build.directory}/generated-sources/annotations</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cincludes.3E"></a><b><a name="includes">&lt;includes&gt;</a></b></h4>
        
<div>A list of inclusion filters for the compiler.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.util.Set</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Clog.3E"></a><b><a name="log">&lt;log&gt;</a></b></h4>
        
<div>The format of the compiler log file. <code>plain</code> will log
into a plain text file (.log), <code>xml</code> will log in xml
format (.xml). If omitted, no logging into files is done. The log
file name is derived from the jar file name: 

<div>
<pre>
Example:
build.properties:

output.lib1/library.jar = lib1bin/ 
output.lib2/library.jar = lib2bin/ 
output.. = bin/

And a configuration:

&lt;configuration&gt;
  &lt;logEnabled&gt;true&lt;/logEnabled&gt;
  &lt;logDirectory&gt;${project.build.directory}/logfiles&lt;/logDirectory&gt;
  &lt;log&gt;xml&lt;/log&gt; 
&lt;/configuration&gt;

Will produce the following log files

${project.build.directory}/logfiles/@dot.xml
${project.build.directory}/logfiles/lib1_library.jar.xml
${project.build.directory}/logfiles/lib2_library.jar.xml
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3ClogDirectory.3E"></a><b><a name="logDirectory">&lt;logDirectory&gt;</a></b></h4>
        
<div>The directory where the compiler log files should be placed. For
each output jar a log file will be created and stored in this
directory. Logging into files is only enabled if <code>log</code>
is specified. Default:
<code>${project.build.directory}/compile-logs</code></div>
        
<ul>
          
<li><b>Type</b>: <code>java.io.File</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>${project.build.directory}/compile-logs</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cmaxmem.3E"></a><b><a name="maxmem">&lt;maxmem&gt;</a></b></h4>
        
<div>maximum size, in megabytes, of the memory allocation pool, ex.
&quot;128&quot;, &quot;128m&quot; if fork is set to true</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.maxmem</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cmeminitial.3E"></a><b><a name="meminitial">&lt;meminitial&gt;</a></b></h4>
        
<div>Initial size, in megabytes, of the memory allocation pool, ex.
&quot;64&quot;, &quot;64m&quot; if fork is set to true</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.meminitial</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Coptimize.3E"></a><b><a name="optimize">&lt;optimize&gt;</a></b></h4>
        
<div>Optimize compiled code using the compiler's optimization methods</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.optimize</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CoutputFileName.3E"></a><b><a name="outputFileName">&lt;outputFileName&gt;</a></b></h4>
        
<div>Used to control the name of the output file when compiling a set of
sources to a single file.</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>project.build.finalName</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cproc.3E"></a><b><a name="proc">&lt;proc&gt;</a></b></h4>
        
<div>If <code>only</code> is specified, the annotation processors will run
but no compilation will be performed. If <code>none</code> is
specified, annotation processors will not be discovered or run;
compilation will proceed as if no annotation processors were found.
By default the compiler must search the classpath for annotation
processors, so specifying <code>none</code> may speed compilation if
annotation processing is not required. This parameter requires a
1.6 VM or above and is used only if the compliance is 1.6</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Since</b>: <code>0.16.0</code></li>
          
<li><b>Required</b>: <code>No</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Crelease.3E"></a><b><a name="release">&lt;release&gt;</a></b></h4>
        
<div>The -release argument for the Java compiler</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.release</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CrequireJREPackageImports.3E"></a><b><a name="requireJREPackageImports">&lt;requireJREPackageImports&gt;</a></b></h4>
        
<div>Whether a bundle is required to explicitly import non-java.*
packages from the JDK. This is the design-time equivalent to the
equinox runtime option <a class="externalLink" href="https://wiki.eclipse.org/Equinox_Boot_Delegation#The_solution">osgi.compatibility.bootdelegation</a>.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CshowDeprecation.3E"></a><b><a name="showDeprecation">&lt;showDeprecation&gt;</a></b></h4>
        
<div>Output source locations where deprecated APIs are used</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.showDeprecation</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CshowWarnings.3E"></a><b><a name="showWarnings">&lt;showWarnings&gt;</a></b></h4>
        
<div>Output warnings</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.showWarnings</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Csource.3E"></a><b><a name="source">&lt;source&gt;</a></b></h4>
        
<div>The -source argument for the Java compiler</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.source</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CstaleMillis.3E"></a><b><a name="staleMillis">&lt;staleMillis&gt;</a></b></h4>
        
<div>The granularity in milliseconds of the last modification date for
testing whether a source needs recompilation</div>
        
<ul>
          
<li><b>Type</b>: <code>int</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>lastModGranularityMs</code></li>
          
<li><b>Default</b>: <code>0</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CstrictCompilerTarget.3E"></a><b><a name="strictCompilerTarget">&lt;strictCompilerTarget&gt;</a></b></h4>
        
<div>If set to <code>false</code> (the default) issue a warning if
effective compiler target level is incompatible with bundle minimal
execution environment. If set to <code>true</code> will fail the
build if effective compiler target and minimal BREE are
incompatible.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Ctarget.3E"></a><b><a name="target">&lt;target&gt;</a></b></h4>
        
<div>The -target argument for the Java compiler</div>
        
<ul>
          
<li><b>Type</b>: <code>java.lang.String</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.target</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CuseJDK.3E"></a><b><a name="useJDK">&lt;useJDK&gt;</a></b></h4>
        
<div>Which JDK to use for compilation. Default value is SYSTEM which
means the currently running JDK. If BREE is specified, MANIFEST
header <code>Bundle-RequiredExecutionEnvironment</code> is used to
define the JDK to compile against. In this case, you need to
provide a <a class="externalLink" href="http://maven.apache.org/guides/mini/guide-using-toolchains.html">toolchains.xml</a>
configuration file. The value of BREE will be matched against the
id of the toolchain elements in toolchains.xml. Example: 

<div>
<pre>
&lt;toolchains&gt;
  &lt;toolchain&gt;
     &lt;type&gt;jdk&lt;/type&gt;
     &lt;provides&gt;
         &lt;id&gt;J2SE-1.5&lt;/id&gt;
     &lt;/provides&gt;
     &lt;configuration&gt;
        &lt;jdkHome&gt;/path/to/jdk/1.5&lt;/jdkHome&gt;
     &lt;/configuration&gt;
  &lt;/toolchain&gt;
&lt;/toolchains&gt;
</pre></div>

The default value of the bootclasspath used for compilation is
<code>&lt;jdkHome&gt;/lib/*;&lt;jdkHome&gt;/lib/ext/*;&lt;jdkHome&gt;/lib/endorsed/*</code>
. For JDKs with different filesystem layouts, the bootclasspath can
be specified explicitly in the configuration section. Example: 

<div>
<pre>
&lt;configuration&gt;
  &lt;jdkHome&gt;/path/to/jdk/1.5&lt;/jdkHome&gt;
  &lt;bootClassPath&gt;
    &lt;includes&gt;
      &lt;include&gt;jre/lib/amd64/default/jclSC160/*.jar&lt;/include&gt;
    &lt;/includes&gt;
    &lt;excludes&gt;
      &lt;exclude&gt;**/alt-*.jar&lt;/exclude&gt;
    &lt;/excludes&gt;
  &lt;/bootClassPath&gt;
&lt;/configuration&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <code>org.eclipse.tycho.core.maven.ToolchainProvider$JDKUsage</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>SYSTEM</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3CuseProjectSettings.3E"></a><b><a name="useProjectSettings">&lt;useProjectSettings&gt;</a></b></h4>
        
<div>If set to <code>true</code>, the settings file
${project.basedir}/.settings/org.eclipse.jdt.core.prefs will be
passed to the compiler. If the file is not present, the build will
not fail.</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>Default</b>: <code>true</code></li>
        </ul><hr /></section><section>
<h4><a name="a.3Cverbose.3E"></a><b><a name="verbose">&lt;verbose&gt;</a></b></h4>
        
<div>Whether to output messages about what the compiler is doing</div>
        
<ul>
          
<li><b>Type</b>: <code>boolean</code></li>
          
<li><b>Required</b>: <code>No</code></li>
          
<li><b>User Property</b>: <code>maven.compiler.verbose</code></li>
          
<li><b>Default</b>: <code>false</code></li>
        </ul>
      </section></section>
    </section>
  

        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>&#169;      2008&#x2013;2022
<a href="http://www.eclipse.org/">Eclipse Foundation</a>
</p>
        </div>
      </div>
    </footer>
<script>
	if(anchors) {
	  anchors.add();
	}
</script>
  </body>
</html>
