## Controlling the output format of the build

This section describes how to control the output of a feature or product build.

### Controlling the output format

The archivesFormat property allows specifying the output format (zip, tar, and folder) of the build on a configuration basis. The format of the property is <configuration> - <format>, where configuration is the same value than the one specified in the `configs` property and format is one of the following.

- `folder` - the output will be stored in a folder located in `${buildDirectory}/tmp/${archivePrefix}`. The targets specified in the `allElements.xml` are not used in this case. Due to current restrictions, only one configuration can be build at a time when using folder as output format.
- `zip` - the output will be stored in a zip file. The zip file will be created by the zip.exe found on the machine running the build. This is useful if you have non jar'ed plug-ins that contains files requiring specific permissions (mostly on UNIX based systems). The property `zipargs` allows passing additional options to the zip command.
- `antZip` - the output will be stored in a zip file. The zip file will be created by the zip implementation of Ant. This is the default value when nothing is specified.
- `tar` - the output will be stored in a gzip'ed tar file. The OS implementation of tar and gzip will be used. The property `tarargs` allows passing additional options to the tar command.

Note that changing the format of the output will not change the name of the created file. It needs to be changed in the allElements.xml file.

### Generating JNLP manifests

To enable the generation of JNLP manifests at build time, set `generateJnlp` to `true` and set `jnlp.codebase` to be the value where the jnlp file will be served from (see codebase attribute in jnlp tag) and `jnlp.j2se`. Note that this will not package your plug-ins and features for an update site, see the "preparing the output for an update site or jnlp site". Due to current restrictions, the creation of the jnlp manifest only works when producing folders as an output format.

### Preparing the output for an update site or jnlp site

When put on an update site or a java web start site, plug-ins and features need to be packaged properly. To do this, simply set the `outputUpdateJars` property to true. Note that this will not generate the site.xml for the eclipse update site and it will not generate jnlp files (see generating jnlp files).

### Grouping multiple configurations in one build

In order to produce an output that contains the plug-ins and features of multiple configurations, set `groupConfigurations` to true. This will create an archive that contains all the plug-ins and features that match the configurations listed in the `configs` property. When using this, don't forget to add a target named `<feature.id>.group.group.group` in the `allElements.xml` file. Due to current restrictions, the usage of this option will cause the value specified in archivesFormat to be ignored and `antZip` will be used by default.

### Signing jars

In order to sign jars during the build, set the property `signJars` to true and set values for the properties `sign.alias`, `sign.keystore`, and `sign.storepass`.