Feature and Plug-in Build Configuration Properties
The build mechanism is driven by a build configuration. The
build configuration for an individual plug-in, fragment, or feature is
in a build.properties file for the corresponding element.
PDE project creation wizards generate the build.properties
plug-in projects are created. The file contains information on how to
compile source folders into
JARs. This information can be indirectly updated in the Runtime page of
manifest editor. It can also be directly modified using the appropriate
PDE provides a simple editor for the build.properties that
has form and source views.
The file itself follows the Java properties format. You need to provide
a number of
keys and their corresponding values. Multiple values are separated
using a comma
as the delimiter.
bin.includes - lists files that will included in the
binary version of the plug-in being built;
bin.excludes - lists files to exclude from the binary
qualifier - when the element version number ends with .qualifier
this indicates by which value ".qualifier" must be replaced. The value
of the property can either be context, <value> or
none. Context will generate a date according to the system
date, or use the CVS tags when the built is automated. Value is an
actual value. None will remove ".qualifier". If the property is
omitted, context is used. (See
custom=true - indicates that the build script is
hand-crafted as opposed to automatically generated. Therefore no other
value is consulted.
indicates an xml file containing custom targets to use when using this
Featureand Plug-in Custom Build Steps)
sets the subant task's failonerror parameter. The default is "false".
sets the subant task's buildpath parameter. Use when the location of the custom callbacks file is not
relative to the root of the plug-in.
customBuildCallbacks.inheritall - sets the subant task's inheritall parameter. Ant's default is false.
Plug-in specific properties
source.<library> - lists source folders that will be
compiled (e.g. source.xyz.jar=src/, src-ant/). If the library
is specified in your plug-in.xml or manifest.mf, the value should match
output.<library> - lists the output folder receiving
the result of the compilation;
exclude.<library> - lists the files that should not
be copied into the library by the compiler;
- extra.<library> - extra classpaths used to perform
automated build. Classpath can either be relative paths, or platform
urls referring to plug-ins and fragments of your development
environment (e.g. ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar).
Platform urls are recommended over relative paths;
manifest.<library> - indicate the file that will be
used as a manifest for the library. The file must be located in one of
the source folder being used as input of the jar.
src.includes - lists files to include in the source build;
- src.excludes - lists files to exclude from the source
- jars.extra.classpath - (deprecated) same effect
than extra.<library> except that the entries are applied to all
- jars.compile.order - defines the order in which jars
should be compiled (in case there are multiple libraries).
set the Environment used to compile this bundle. (See Controlling the Compilation Environment)
javacSource - set the
source compatibility level for compiling this bundle. Overrides
javacTarget - set the
target .class compatibility level for compiling this bundle.
bootClasspath - set the
boot classpath to compile this bundle against, Overrides
- set the warning options to pass to the compiler. (See the -warn
option in Compiling
Java Code from the JDT Plug-in Developer Guide).
- sets default encoding to use when compiling the given library.
- a comma separated list of
paths and encodings to use when compiling the given library.
javacCustomEncodings.library.jar = src/org/foo[US-ASCII], src/org/foo/bar.java[ISO-8859-1]
defined for these keys ending with "includes" or "excludes" are
expressed as Ant "patterns". Standard formats give the expected
results. For example, "*.jar" indicates all jar files in
the top level directory. The patterns are not deep by default. If
you want to
describe all Java files for example, you should use the pattern "**/*.java".
The pattern "**" matches any number of directory levels.
Similarly, to describe whole sub-trees, use "xyz/".
root - List the files and folders that must be included in
the root of the product. See the
Rootfiles help page for more detail, incuding the following additional properties:
- root.<config>: per configuration rootfiles.
- root.folder : rootfiles placed in subfolders.
- root.permissions : perform chmods on rootfiles.
- root.link : generate softlinks for rootfiles.
root.<config> - list the files and folders that must
be included in the root of the product when it is built for the
specified configuration. config is composed of the three (3) segments
of a configuration separated with a dot;
root.permissions.<permissionValue> - list the files
and folders to chmod to the given value. Reference to folders must ends
with a '/';
list the files and folders to chmod to the given value for a specific
configuration. Reference to folders must ends with '/';
root.link - list by pairs (separated by a comma) the files
and folders that need to be symbolicly linked. The first entry indicate
the source (target in the unix terminology) and the second entry the
root.link.<config> - a comma separated list of pairs
of files and folders that need to be symbolicly linked for a specific
configuration. The first entry indicate the source (target in the unix
terminology) and the second entry the link name;
generate.feature@<featureId> - indicates that the
source feature featureId will be the source feature for the
feature indicated as value of this property. The values listed after
the first comma indicates elements to be fetched from the
SourcePlugin and Feature Generation)
generate.plugin@<pluginId> - indicates that the
source plug-in pluginId will be the source plug-in for the
indicated as value of this property.
- The number of significant digits used when generating feature version
The length of the generated feature version suffix.
The following example has been extracted from the build.properties of
the org.eclipse.platform feature.