Building an RCP application from a product configuration file

PDE Build comes with infrastructure to build a complete RCP application from a product configuration file. Most of the setup necessary for such a build can be done through a few modifications to the template build.properties provided in PDE build. The following section focuses on setting up a simple product build assuming that all plug-ins and features (both to build and pre-built) referenced by the product file are already locally available on disk.

Basic setup

The first step in setting up a build is to create the directory in which the build will take place. This directory will be referred to as the build directory and will contain the plug-ins and features to build as well as all the generated artifacts. Next, copy your plug-ins and features respectively into "plugins" and "features" subdirectories. Your product configuration file is expected to be in one of these plugins/features.

The second step in setting up a build is to copy the template build.properties file from org.eclipse.pde.build/templates/headless-build to a new directory which will be the build configuration directory (also referred to as the configuration directory). Edit the copied build.properties file and set the following properties:

Overview of the directory structure

<buildDirectory>/
plugins/
pluginToBuildA
pluginToBuildB
myProduct.product
...
features/
featureToBuild
...

<buildConfiguration>/
build.properties

<baseLocation>
plugins/
org.eclipse.core.runtime
org.eclipse.ui
...
features/
org.eclipse.rcp
org.eclipse.platform.launchers
...

Running the build

To run the build you will use the org.eclipse.ant.core.antRunner application. When invoking eclipse with this application to perform a build you need to set two arguments on the command line:
Run the antRunner application using the following command:
java -jar <eclipseInstall>/plugins/org.eclipse.equinox.launcher_<version>.jar -application org.eclipse.ant.core.antRunner -buildfile <<eclipseInstall>/plugins/org.eclipse.pde.build_<version>/scripts/productBuild/productBuild.xml> -Dbuilder=<path to the build configuration folder>

Advanced scenarios

Behind the scenes this setup will generate a feature containing the plug-ins or features specified in your product configuration file.  This generated feature is then used to drive a normal feature based headless build. If you require more customization of the build, i.e. fetching from a repository, see the Advanced PDE Build topics for more information.