blob: 5d76d9bec4ff192e6ec6db97c8fe990a9d832c0f [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="copyright" content=
"Copyright (c) IBM Corporation and others 2006, 2012. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Plug-in Compiler Preferences
</title>
<link href="../../book.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="JavaScript" src=
"PLUGINS_ROOT/org.eclipse.help/livehelp.js">
</script>
</head>
<body>
<h1>
Plug-in Compiler Preferences
</h1>
<p>
<img src="../../images/preferences/compilers_plugins.png" alt="Compilers preference page"/>
</p>
<p>
Syntactic errors in <em>plugin.xml</em>, <em>fragment.xml</em> and
<em>MANIFEST.MF</em> are all flagged as errors by the plug-in manifest
compiler. As for semantic problems in the plug-in manifests, the severity
for each problem category can be set to <em>Error</em>, <em>Warning</em>
or <em>Ignore</em>.
</p>
<ul>
<li><a href="#general">General Settings</a></li>
<li><a href="#build">Build Settings</a></li>
<li><a href="#versioning">Versioning Settings</a></li>
<li><a href="#usage">Usage Settings</a></li>
<li><a href="#references">References Settings</a></li>
</ul>
<h2>
Workspace vs. Project Settings
</h2>
<p>
The plug-in compiler preferences are set at a workspace level on the
<a class="command-link" href=
'javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.pde.ui.CompilersPreferencePage)")'>
<img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt=
"Open the compilers preference page" /> <strong>Window &gt;
Preferences... &gt; Plug-in Development &gt; Compilers</strong></a>
preference page and take effect on all plug-in projects in the workspace.
</p>
<p>
It is also possible to override the workspace-scope settings by having
compiler settings at the plug-in project level. To do so, select
<strong>Properties</strong> from the context menu of a plug-in project.
In the <strong>Properties</strong> dialog, project-level manifest
compiler settings can be customized on the <strong>Plug-in Development
&gt; Plug-in Manifest Compiler</strong> preference page.
</p>
<h2><a name="general"></a>General Settings</h2>
<p>
<img src="../../images/preferences/compilers_general2.png" alt="Compilers preference page general section"/>
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" width="5%" align="center"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Required attributes not defined</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A required attribute in a plug-in file is missing</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Incompatible environment</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The plug-in's environment settings do not match the target platform's environment settings</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing exported packages</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>One or more packages in a java source folder are not included in the Export-Package manifest entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>No automatic module name</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Automatic-Module-Name header (required for Java 9 compatibility) is not present in MANIFEST.MF. For details, see this <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleFinder.html"> link.</a> </p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h2><a name="build"></a>Build Settings</h2>
<p>
<img src="../../images/preferences/compilers_build.png" alt="Compilers preference page build section"/>
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" width="5%" align="center"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Problems with 'source.&lt;library&gt;' entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Semantic problem with source entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Problems with 'output.&lt;library&gt;' entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Semantic problem with output entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing 'output.&lt;library&gt;' entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A source entry exists without matching output</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Problems with 'bin.includes' entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Semantic problem with binary includes entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Problems with 'src.includes' entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Semantic problem with source includes entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing or incompatible Java compliance properties</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Project has Java compliance settings without matching entry in build.properties</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing project specific Java compiler settings</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Project has Java complier settings without matching entry in build.properties</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing or incorrect file encodings</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Project has file encoding settings without matching entry in build.properties</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Other problems with build.properties files</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Other problems not part of another setting</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h2><a name="versioning"></a>Versioning Settings</h2>
<p>
<img src="../../images/preferences/compilers_versioning.png" alt="Compilers preference page versioning section"/>
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" width="5%" align="center"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing versions on required bundles</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A required bundle manifest entry does not have version restrictions</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing versions on exported packages</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An exported package manifest entry does not have a version specified</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Missing versions on imported packages</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>An imported package manifest entry does not have version restrictions</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
</tbody>
</table>
<h2><a name="usage"></a>Usage Settings</h2>
<p>
<img src="../../images/preferences/compilers_usage2.png" alt="Compilers preference page usage section"/>
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" width="5%" align="center"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unresolved dependencies</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A plug-in dependency (required bundle or imported package) can not be found</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Unresolved extension points</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>The provider for an extension point cannot be found</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Error</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Usage of internal extension points</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Providing an extension to an extension point that is marked as internal</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Usage of deprecated atributes and elements</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Providing an extension that uses attributes or elements from an extension point that are marked as deprecated</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Usage of non-externalized strings</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>A plug-in is using a string that could be translated in plugin.properties</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Ignore</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Usage of service component without lazy activation policy</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Bundle manifest has a Service-Component without a Bundle-ActivationPolicy: lazy entry</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h2><a name="references"></a>References Settings</h2>
<p>
<img src="../../images/preferences/compilers_references.png" alt="Compilers preference page references section"/>
</p>
<table border="1" cellspacing="0" cellpadding= "5" width="100%">
<thead>
<tr>
<th rowspan="1" colspan="1" width="30%"> <p> Option </p></th>
<th rowspan="1" colspan="1"> <p> Description </p></th>
<th rowspan="1" colspan="1" width="5%" align="center"> <p> Default </p></th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Illegal elements</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Referencing an illegal element in an extension</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Illegal atributes</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Referencing an illegal attribute in an extension</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>References to non-existent classes</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Referencing a class from an extension that does not exist in the project</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>References to discourage classes</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Referencing a class from an extension that has discouraged access warnings</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>References to non-existent resources</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>References a resource from an extension that does not exist in the project</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
<tr>
<td rowspan="1" colspan="1" valign="top" align="left"><p>References to non-existent identifier attributes</p></td>
<td rowspan="1" colspan="1" valign="top" align="left"><p>Referencing an identifier attribute that is not defined by a known extension</p></td>
<td rowspan="1" colspan="1" valign="top" align="center"><p>Warning</p></td>
</tr>
</tbody>
</table>
<h2>Non-obvious Problems</h2>
<p>The following is a brief explanation for some of the non-obvious
potential problems that are flagged by PDE:
</p>
<ul>
<li>
<div class="style3">
Non-negotiable Markers:
</div>
Some problems such as a missing plug-in ID, plug-in version, or
plug-in name render a plug-in invalid. Therefore, these problems are
flagged with a non-negotiable error marker and are not available for
configuration on this preference page.
</li>
<li>
<div class="style3">
Unresolved Dependencies:
</div>An unresolved dependency is a dependency on a plug-in (in the
<strong>Require-Bundle</strong> <em>MANIFEST.MF</em> header) or on a
package (in the <strong>Import-Package</strong> <em>MANIFEST.MF</em>
header) where the plug-in or package in question does not exist.
</li>
<li>
<div class="style3">
Incompatible Environment:
</div>A plug-in or fragment has an incompatible environment if it has
an <strong>Eclipse-PlatformFilter</strong> <em>MANIFEST.MF</em> header
whose value is not compatible with the current Target Environment
settings as they appear on the <strong>Plug-in Development &gt; Target
Platform &gt; Environment</strong> preference page.
</li>
<li>
<div class="style3">
Unresolved Extension Points:
</div>An unresolved extension point is an extension point that does not
exist or whose contributing plug-in is unchecked on the <strong>Plug-in
Development &gt; Target Platform</strong> preference page. Extensions
contributing to such an extension point are flagged.
</li>
</ul>
<p>
<img src="../../../images/ngrelr.png" alt="Related reference" border=
"0" />
</p>
<p>
<a href="compilers.htm">PDE Compiler Preferences</a><br />
<a href="preferences.htm">PDE Preferences</a>
</p>
</body>
</html>