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 functionality 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>/plugins/org.eclipse.equinox.launcher_<version>.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=https://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | win32,win32,x86 | | sdk | eclipse
eclipse-PDE-3.1.zip=https://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 "&" separated 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 independent pieces and will group
            all configs into one archive. | 
| unzipOrder | a comma separated list of archive name prefixes setting
            the order in which archives should be extracted. |