blob: acf4a8ee264c737c31713f34bc73d38fe69d274a [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.9.2 from target/generated-site/xdoc/compile-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 OSGi Compiler Plugin &#x2013; tycho-compiler:compile</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 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: 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-compiler:compile"></a>tycho-compiler:compile</h2>
<p><b>Full name</b>:</p>
<p>org.eclipse.tycho:tycho-compiler-plugin:2.0.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>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><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><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><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><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><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><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><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><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><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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="a">
<td><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="b">
<td><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.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;2020
<a href="http://www.eclipse.org/">Eclipse Foundation</a>
</p>
</div>
</div>
</footer>
</body>
</html>