# Feature Builds with p2

Defining the new property:

`p2.gathering = true`

will cause a few changes for feature builds. See also the page for feature metadata layout.

In particular, instead of producing per-platform archives, the build will produce a single p2 repository which is a group of all the platforms. Effectively this is forcing an implicit `groupConfigurations=true`.

The following is a list of related properties (old and new):

`p2.gathering` | Set to `true` to turn on p2 publisher based builds.
`p2.build.repo` | The local build time p2 repository, default is `${buildDirectory}/buildRepo`. Results will be mirrored from here to the final archive location.
`groupConfigurations` | `p2.gathering=true` has the implicit effect of setting `groupConfigurations=true`. To control the output format of the archive use the `group.group.group` configuration.
`generate.p2.metadata` | This is property for the old metadata generator integration. It has no affect when `p2.gathering=true`.
`p2.metadata.repo p2.artifact.repo` | These properties were associated with `generate.p2.metadata` and have no affect on feature builds when `p2.gathering=true` because the default behaviour in this case is to create a p2 repository. (However, these properties do affect product builds).
`p2.metadata.repo.name p2.artifact.repo.name` | Optional, these properties will be used to name the final feature repository.
`p2.compress` | Set to `true` to compress the final feature repository xml into a jar.
`p2.flavor` | No affect for feature builds, but does affect product builds.
`p2.publish.artifacts` | No affect when `p2.gathering=true` (Old property)
`p2.root.name p2.root.version` | No affect when `p2.gathering=true` (Old property)
`p2.context.repos` | Define context repositories. See reusing metadata.
`repoBaseLocation` | A folder containing repositories to transform using `<p2.repo2runnable>`. See also reusing metadata.
`transformedRepoLocation` | The folder containing the output of `<p2.repo2runnable>`. See also reusing metadata.
`p2.category.site` | A URL to a site.xml file used to define categories.
`p2.category.definition` | A URL to a category.xml file used to define categories.
`p2.category.prefix` | Define a prefix to ensure unique ids for category IUs generated from site/category files that don't use unique names.
`skipMirroring` | Skip the mirroring step, no final archive is created. Build results are found in `${p2.build.repo}`.