You can use -include
as follows:
-include: <path or url>
This will read the path or url as a properties or manifest file (if it ends in .MF
).
It is important to realize that the include is not handled by the parser.
That is, it is not a normal text include.
The properties parser will read all properties in one go and then the Properties object is inspected for the -include
instruction.
The paths or URLs in the -include
instruction are processed one by one in order.
By default, the properties in the included file overwrite the properties that were set in the same file as the -include
instruction.
If a property is already defined and not set to be overwritten (see below), the property will get a namespace assigned.
The namespace will be derived from the filename or the last segment of the URL.
The -include
instruction is processed before anything else in the properties.
This means the -include
instruction cannot use any properties defined in the same properties file to define the include paths.
It can use properties already defined by a parent.
So a Project’s bnd.bnd
file can have an -include
instruction use properties defined in the Workspace (cnf/build.bnd
and cnf/ext/*.bnd
).
For the Workspace, cnf/build.bnd
, -include
instruction can only use the default properties of Bnd.
The Workspace cnf/ext/*.bnd
files are processed after cnf/build.bnd
.
So cnf/ext/*.bnd
files can have -include
instructions which use properties set in cnf/build.bnd
.
There are two possible options. The path/URL starts with a:
~
– Included properties do not overwrite any existing properties having the same property names.-
– If file or URL or path does not exist then do not report an error.# Read an optional file in the user's home directory
-include ${user.home}/.xyz/base.bnd
# Read a manifest
-include META-INF/MANIFEST.MF
# Use a URL
-include http://example.com/foo/bar/setup.bnd
# Read several
-include first.bnd, second.properties
# Don't overwrite any existing properties
-include ~no.overwrite