<target if="lang" unless="lang.en" depends="foo1,foo2"
name="main" description="This is an example target" >
<!-- everything else goes here -->
</target>
The target defined in the example above is only executed, if the property
${lang} is set and the property ${lang.en}
is not set. Additionally, it depends on the targets foo1 and
foo2. That means, the targets foo1 and
foo2 are executed before the target main
is executed. The name of the target is main and it also has a
description.
Table H.2: Parameters
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
depends | String | One or more names of targets that have to be executed before this target can be executed. | n/a | No |
description | String | A free text description of the target. | n/a | No |
if | String | The name of the property that is to be set if the target is to be executed. | n/a | No |
name | String | The name of the target | n/a | Yes |
unless | String | The name of the property that is to be set if the target is not to be executed. | n/a | No |
hidden | Boolean | Whether or not to include this target in
the list of targets generated by phing -l | False | No |
logskipped | Boolean | Whether to log message as INFO instead of VERBOSE if target is skipped | False | No |
The if and unless attributes only enable or disable the target to which they are attached. They do not control whether or not targets that a conditional target depends upon get executed. In fact, they do not even get evaluated until the target is about to be executed, and all its predecessors have already run.