Eclipse components are delivered as archive files. Each archive contains a collection of features and plug-ins. Typically the archives contain all the functions that a particular component has to offer. It is often the case that consumers either need more than one component and/or only need parts of some components. Without assistance, consumers would have to manually fetch the archives containing the superset of the function they need and then manually extract the required features and plug-ins. This can be a laborious and error prone process.
Fortunately, PDE contains a batch oriented mechanism, the packager which can help. In short, the packager takes as input a list of archives containing features and a list of interesting features. It then fetches the zips, extracts the features (and their plug-ins) and repackages them into an output zip.
Below is a set of basic steps to get started with the
packager. It is suggested that you build *nix packages on a *nix
machine to ensure that file permissions are preserved.
java -jar <eclipse install>/startup.jar -application org.eclipse.ant.core.antRunner
-buildfile <<eclipse install>/plugins/org.eclipse.pde.build_<version>/scripts/package.xml>
-DpackagingInfo=<path to your packaging configuration directory>
eclipse-SDK-3.1-win32.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | win32,win32,x86 | | sdk | eclipse
eclipse-PDE-3.1.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | | | runtime | pde
baseDirectory |
The directory in which all the
packaging will take place |
workingDirectory |
The directory in which the
scripts will be generated. The value in the template is ${baseDirectory}/workingPlace |
downloadDirectory |
The folder to which the archives
will be downloaded. The value in the template is ${baseDirectory}/toPackage |
tempDirectory |
The folder that the archives
will be extracted to. The value in the template is ${baseDirectory}/temp |
featurePaths |
The name of the root of the
archives downloaded. The value in the template is eclipse. |
featureList |
A comma separated list of
feature ids that you wish to repackage. |
componentFilter |
A comma separated list of the
components from which the features in featureList can be found.
This filters the available archives and allows the packager to optimize
the set of files downloaded. |
contentFilter |
A comma separated list of
content types to fetch. This filters the set of available
archives and allows the packager to optimize the set of files
downloaded. |
config |
An "&" seperated list of configs (comma separated triples of operating system, windowing system, architecture) to repackage. (eg: win32, win32, x86 & linux, gtk, x86) |
archivesFormat |
The formats of the
archives. An "&" separated list of config - format.
(eg: win32, win32, x86 - antZip & linux, gtk, ppc - tar).
If
no archive format is specified for a given config, the default format
is antZip. |
zipargs |
Extra arguments to be passed to
zip |
unzipargs |
Extra arguments to be passed to
unzip |
archivePrefix |
The prefix of the resulting
archive(s) |
collectingFolder |
The name of the root folder of
the resulting archive. |
buildId |
Controls the build id in the
default name of the archive. |
buildType |
Type of the build, used in
naming the build output. Typically one of I, N, M, S, ... |
buildLabel |
Label for the build. The
template value is ${buildType}.${buildId} |
archiveNamePrefix |
Control the name of the
resulting archive. The default value of this is ${buildId} |
packagingProperties |
A relative path to the file
containing the properties packaging root files.. By default
this points to packaging.properties. |
deltaPack |
Whether or not to generate a
delta pack. This will exclude platform independant pieces and
will group all configs into one archive. |