NAnt Help Task Reference <call> | v0.90 |
Calls a NAnt target in the current project.
When the <call> task is used to execute a target, both that target and all its dependent targets will be re-executed.
To avoid dependent targets from being executed more than once, two options are available:
<target name>
')}" to the dependent targets. cascade
attribute on the <call> task to false (recommended
). Attribute | Type | Description | Required |
---|---|---|---|
target | string | NAnt target to call. | True |
cascade | bool | Execute the specified targets dependencies -- even if they have been previously executed. The default is true. | False |
force | bool | Deprecated. Force an execute even if the target has already been executed. The default is false. | False |
failonerror | bool | Determines if task failure stops the build, or is just reported. The default is true. | False |
if | bool | If true then the task will be executed; otherwise, skipped. The default is true. | False |
unless | bool | Opposite of if . If false then the task will be executed; otherwise, skipped. The default is false. |
False |
verbose | bool | Determines whether the task should report detailed build log messages. The default is false. | False |
Call the target "build".
<call target="build" />
This shows how a project could 'compile' a debug and release build using a common compile target.
<project default="build"> <property name="debug" value="false" /> <target name="init"> <echo message="initializing" /> </target> <target name="compile" depends="init"> <echo message="compiling with debug = ${debug}" /> </target> <target name="build"> <property name="debug" value="false" /> <call target="compile" /> <property name="debug" value="true" /> <call target="compile" /> </target> </project>
The cascade
parameter of the <call> task defaults to true, causing the "init" target to be executed for both the "debug" and "release" build.
This results in the following build log:
build: init: [echo] initializing compile: [echo] compiling with debug = false init: [echo] initializing compile: [echo] compiling with debug = true BUILD SUCCEEDED
If the "init" should only be executed once, set the cascade
attribute of the <call> task to false.
The build log would then look like this:
build: init: [echo] initializing compile: [echo] compiling with debug = false compile: [echo] compiling with debug = true BUILD SUCCEEDED