Build Properties

Tycho uses the build.properties file as defined by PDE to configure various aspects of the build.

Note that Tycho only supports a subset of keys defined by PDE. If a key is not supported, this may be because:

  • it's legacy/deprecated
  • it doesn't fit into the maven project model or the way maven is generally expected to work
  • there are other ways to achieve the desired configuration (e.g. using pom.xml)
  • it's a missing feature

In additional to the PDE properties, Tycho supports property expressions like ${project.version} in build.properties values. These expressions are only used in a Tycho build, not when using the Eclipse IDE incremental build.

See the table below for which keys in build.properties defined by PDE are supported by Tycho or if not, whether there are alternatives when using Tycho.

Common Properties

Key Value
bin.includes supported
bin.excludes supported
qualifier not supported - use Build Qualifer Mojo instead
forceContextQualifier supported
custom* not supported

Plugin-specific properties

Key Value
source.library supported
output.library not supported - compiler output goes to ${project.build.outputDirectory} (usually target/classes) for main jar and target/nestedjar-classes for nested jars
exclude.library supported
extra.library supported
manifest.library supported
src.includes supported
src.excludes supported
jars.extra.classpath only supported in the form platform:/plugin/<Bundle-SymbolicName>[/path/to/nested/jar]
jars.compile.order supported
additional.bundles supported (since Tycho 2.4.0)

Compiler-specific properties

Key Value
jre.compilation.profile supported
javacSource supported
javacTarget supported
bootClasspath not supported - use maven toolchains instead
javacWarnings.library not supported - use compilerArgument instead.
javacErrors.library not supported - use compilerArgument instead.
javacDefaultEncoding.library supported
javacCustomEncodings.library not supported
javacProjectSettings not supported. Use useProjectSettings or compilerArgs instead.
compilerArg not supported. Use compilerArgs instead
compilerAdapter not supported. Use compilerId instead
compilerAdapter.useLog not supported
compilerAdapter.useArgFile not supported
sourceFileExtensions not supported - use excludeResources instead

Feature-specific properties

Key Value
root supported
root.config supported
root.folder supported (since Tycho 0.27.0)
root.config.folder supported (since Tycho 0.27.0)
root.permissions supported
root.link supported
generate.feature not supported - use Tycho Source Plugin instead
generate.plugin not supported - use Tycho Source Plugin instead
significantVersionDigits not supported
generatedVersionLength not supported