Ant plugin¶
The Ant plugin builds Java projects using the Apache Ant build tool.
After a successful build, this plugin will:
Create
bin/
andjar/
directories in$CRAFT_PART_INSTALL
.Find the
java
executable provided by the part and link it as$CRAFT_PART_INSTALL/bin/java
.Hard link the
.jar
files generated in$CRAFT_PART_BUILD
to$CRAFT_PART_INSTALL/jar
.
Keywords¶
In addition to the common plugin and sources keywords, this plugin provides the following plugin-specific keywords:
ant-build-targets¶
Type: list of strings
The ant targets to build. These are directly passed to the ant
command line.
ant-build-file¶
Type: str
The name of the main XML build file. Defaults to build.xml
.
ant-properties¶
Type: dict of strings to strings
A series of key: value pairs that are passed to ant
as properties using the
-D{key}={value}
notation.
Environment variables¶
This plugin reads the http_proxy
and https_proxy
variables from the environment
to configure proxy access.
Please refer to Running Apache Ant for a list of environment variables used by Ant.
Dependencies¶
The plugin expects Ant to be available on the system as the ant
executable, unless
a part named ant-deps
is defined. In this case, the plugin will assume that this
part will stage the ant
executable to be used in the build step.
Note that the Ant plugin does not make a Java runtime available in the target environment. This must be handled by the developer when defining the part, according to each application’s runtime requirements.
Example¶
The following snippet declares a part using the ant
plugin. The declaration
of ant
as a build-package
installs both the build tool and a Java SDK, and
default-jre-headless
is added as a stage-package
so that the Java runtime
is bundled with the part. The ant-build-file
and ant-build-targets
plugin
properties are set to define the project’s main build file and which targets to
build, respectively.
parts:
my-ant-part:
source: .
plugin: ant
build-packages: [ant]
stage-packages: [default-jre-headless]
ant-build-file: "project-build.xml"
ant-build-targets: [compile, jar]