### Builder Configuration Properties

The overall build mechanism is driven by a builder configuration which includes a build.properties file.

- Basic Settings

  topLevelElementId | The id of the feature being built. This property is new in 3.4 and depends on the use of the 3.4 allElements.xml file. Build configurations using older style customTargets.xml and/or allElements.xml files should not use this property.
  buildDirectory | The directory where the build will take place.

  configs

  A list of configurations to build. A configuration is an ampersand separated list of comma separated operating system, windowing system and architecture. If no config is specified, the platform independent config will be built. Example:

      configs = win32, win32, x86 & linux, gtk, ppc

- p2 Integration
  See the p2 Integration documentation for properties controlling feature builds, and product builds.

- Base Control: The base is a target eclipse install containing plug-ins and features that you require but are not building yourself.

  baseLocation | The location of the target eclipse install. In the default template, the value of this is ${base}/eclipse. (See the base property below). This directory is expected to contain `plugins/` and `features/` subdirectories which contain the binary plug-ins and features respectively.
  baseos | The operating system of the eclipse specified by baseLocation
  basews | The windowing system of the eclipse specified by baseLocation
  basearch | The architecture of the eclipse specified by baseLocation
  pluginPath | A platform path-separator separated list of locations to find additional plug-ins and features.
  skipBase | If set, automatically download a base eclipse to use as a target
  base | The location the base eclipse will be downloaded to. This should be the parent of baseLocation, such that `baseLocation = ${base}/eclipse`.
  eclipseURL | The URL for the eclipse download site
  eclipseBuildId | The build ID of the eclipse to download

  eclipseBaseURL

  The actual URL of the zip to download. In the default template, the value is:

      eclipseBaseURL = ${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip

  filteredDependencyCheck | Constraint the set of plug-ins and features to be considered during the build to the one reachable from the features / plugins being built when set to true
  resolver.devMode | When set to true, the validation done on the set of plug-ins being built will be less strict. For example it will allow multiple versions of a singleton bundle to be resolved.

- Output Control: The following properties affect the shape of the build results.

  runPackager | Set if the packager needs to be run. Set this if your build results need to contain binary features and plug-ins that come from the baseLocation.
  product | The product configuration file. Set this if you are building a product. It controls branding of your build results.
  archiveNamePrefix | The prefix of the name of the final archive files. This is used in allElements.xml when setting the archive name on a per config basis. By default, the value will be ${buildId}
  archivePrefix | The name of the archive root folder, this is "eclipse" for eclipse builds.
  buildType | Type of build, normally something like I, N, M, etc.
  buildLabel | The label for the build. In the default template, the value is `${buildType}.${buildId}`
  collectingFolder | The folder where the build output will be collected. In the default template, the value is `${archivePrefix}`.
  groupConfigurations | Whether or not to group all configuration into one archive file.

  archivesFormat

  The archive format for the different configs being built. This is an ampersand separated list of configs and their archive format. The format is separated by a dash (-). Example:

      archivesFormat =  win32, win32, x86 - antzip & linux, gtk, ppc - tar

  outputUpdateJars | When set, generates plug-ins and features in JAR format for an update site.
  zipArgs | Arguments to be sent to the zip executable when the archive format is zip.
  tarArgs | Arguments to be sent to the tar executable when the archive format is tar.

- Signing and Jnlp control:

  generateJnlp | Set to true to generate JNLP manifests for the JAR archives
  jnlp.codebase | The site URL. This should be a URL that will be used as the root of all relative URLs in the output.
  jnlp.j2se | The J2SE version required to run the JNLP app being exported
  jnlp.locale | The locale in which the generated jnlp files should be generated.
  jnlp.generateOfflineAllowed | Generate the <offlineAllowed/> in the generated files when set to true.
  jnlp.configs | Filter the content of the generated jnlp files based on the configuration being built. The configurations need to be listed.
  signJars | Set to true to sign jars for features and plug-ins.
  sign.alias | The alias passed to the ant signJar task.
  sign.keystore | The keystore passed to the ant signJar task.
  sign.storepass | The storepass passed to the ant signJar task.
  sign.keypass | The keypass passed to the ant signJar task.

- Version Control. (See also Version Qualifiers)

  forceContextQualifier | The value of this property is used when replacing qualifiers in plug-in and feature versions. If set it is used instead of the tags from the map files or the timestamp.
  generateFeatureVersionSuffix | Set to true to generate feature version suffixes
  generateVersionsLists | Set to true to generate properties files listing the final version numbers of features and plug-ins being built. This will create finalFeaturesVersions.properties and finalPluginsVersions.properties files in the builder directory.

- Fetch phase Control (See also Fetching from Repositories)

  skipMaps | If set, do not attempt to fetch map files from CVS

  mapsRepo

  The CVS repository to fetch map files from. Example:

      :pserver:anonymous@example.com/path/to/repo

  mapsRoot | The path in the CVS repository to the directory containing the map files
  mapsCheckoutTag | The CVS tag to use to checkout the map files
  tagMaps | Set to true to tag the map files after fetching them.
  mapsTagTag | The tag with which to tag the map files after fetching them.
  skipFetch | Set to true to skip the entire fetch phase.
  fetchTag | The tag to use when fetching features and plug-ins from CVS. This property overrides the values in the map files.

- Compilation Control (See also Controlling Compilation Environment)

  logExtension | The extension of the generated log file. This only applies when using the default JDT compiler. Default value is ".log".
  javacDebugInfo | Whether or not to include debug info in the output jars. This is passed to the ant javac task. If not set, default value is on.
  javacFailOnError | Whether or not to fail the build if there are compilation errors. This is passed to the ant javac task. If not set, default value is true.
  javacVerbose | Whether or not to enable the verbose mode of the compiler. This is passed to the ant javac task. If not set, default value is false.
  compilerArg | Set specific arguments to pass directly to the compiler.
  javacSource | The java source compatibility level to use if a plug-in does not specify any settings. If not set, 1.3 is the default value.
  javacTarget | The target .class compatibility level to use if a plug-in does not specify any settings. If not set, 1.2 is the default value.
  flattenDependencies | Sort bundle dependencies across feature boundaries. (See also Compilation Order and Parallelization)
  parallelCompilation | Set to true to enable parallel compilation. (Requires flattenDependencies=true)
  parallelThreadCount | The maximum number of threads to use. Corresponds to threadCount on the ant parallel task.
  parallelThreadsPerProcessor | The maximum number of threads to use per available processor. Corresponds to threadsPerProcessor on the ant parallel task.
  bootclasspath | The bootclasspath to use if the plug-in does not specify any settings itself. This is a platform path separator separated list of jars. If not set, the file set matching ${java.home}/jre/lib/*.jar will be used.
  <Execution Environment> | Set properties for each JRE that can be used to build. These properties will match up against Execution Environments specified by individual bundles. The values should specify the jars to compile against when using that environment. See Controlling Compilation Environment.