Using Version Qualifiers
Eclipse bundles and features have version numbers of the form major.minor.micro.qualifier. The qualifier
segment of the version is often used to indicated a specific
build. If you set your feature or plug-in version qualifier to
"qualifier" (i.e. a version of 1.0.0.qualifier),
then PDE build
will
automatically replace the word "qualifier" with a generated qualifier.
Controlling the Generated Qualifier
A feature or plug-in can control its qualifier by setting the property "
qualifier
" in its build.properties file. There are are a couple of different cases for the value of this property:
qualifier = none
|
Sets the qualifier to be empty. (i.e. "1.2.3.qualifier" becomes "1.2.3") |
qualifier = context
|
Sets the qualifier to be the context qualifier. See below for the value of the context qualifier. |
not set
|
If the "qualifier" property is not set, this is equivalent to setting qualifier = context. |
qualifier = v12345
|
Any other value sets the qualifier to be that value. |
The Context Qualifier
The value of the generated context qualifier is determined by the first of the
following items that apply:
- If the property forceContextQualifier is set in your builder's
configuration build.properties file, then the value of this
property is used as the qualifier. This property can also be set
on the command line with -D when invoking ant.
- When exporting from the UI, forceContextQualifier is set according to the "Qualifier replacement" value on the options tab of the "Deployable plug-ins and fragments" export wizard.
- If you are using map files to fetch your bundles from a
repository,
then the tag that was used to fetch the bundle will be used as the
qualifier.
- If neither forceContextQualifier nor map files are used, then the
qualifier will be a time stamp in the form YYYYMMDDHHMM (i.e.
200605121600)
Feature Version Suffixes
You can turn on the generation of qualifier suffixes for features by
setting the property
generateFeatureVersionSuffix=true
in the build configuration build.properties file.
The idea of a version is that it should increment each time something
changes, the version qualifier increments and captures changes from
build to build. Features rarely change, however, they do contain
plug-ins which may change often. When version suffixes are turned
on, a feature version will have the form
major.minor.micro.qualifier-suffix.
The suffix is in effect the sum of the version qualifiers of all the
features and plug-ins included by the feature. This means that
when one of the included plug-ins increments its version, then the
version of the feature will automatically increment as well. This
is particularly useful when the feature is deployed via an update site.
Final Versions
Occasionally there may be custom build steps that may require the
actual final version used in the build. When the property
generateVersionsLists
is set, PDE Build will generate
properties files containing the versions of the features and plug-ins
that were built. These properties files can be loaded using the ant property task.
The files are named:
finalPluginsVersions.properties,
finalPluginsVersions.<config>.properties,
finalFeaturesVersions.properties, and
finalFeaturesVersions.<config>.properties.
finalPluginsVersions.properties and finalFeaturesVersions.properties
contain the versions for all of the plug-ins and features that were
built. The <config> properties files contain the versions
of plug-ins and features for specific build configurations.
The properties in these files have the form:
<bundleSymbolicName> = <version>
<bundleSymbolicName>_<first 3 segments of version> = <version>
If more than one versions of a plug-in or feature exists, then
<bundleSymbolicName>=<version> refers to the plug-in or
feature with the highest version.
Example:
org.eclipse.pde.build = 3.3.0.v20070524
org.eclipse.pde.build_3.3.0=3.3.0.v20070524
org.eclipse.pde.build_3.2.1=3.2.1.r321_v20060823