Package org.apache.tools.ant.taskdefs
Class ExecTask
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.ExecTask
-
Field Summary
Modifier and TypeFieldDescriptionprotected Commandline
protected boolean
protected boolean
protected Redirector
protected RedirectorElement
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addConfiguredRedirector
(RedirectorElement redirectorElement) Add aRedirectorElement
to this task.void
Add an environment variable to the launched process.protected void
Has the user set all necessary attributes?Adds a command-line argument.protected ExecuteStreamHandler
Create the StreamHandler to use with our Execute instance.protected ExecuteWatchdog
Create the Watchdog to kill a runaway process.void
execute()
Do the work.final String
getOs()
List of operating systems on which the command may be executed.final String
Restrict this execution to a single OS Familyboolean
Indicates whether to attempt to resolve the executable to a file.protected boolean
Is this the OS the user wanted?protected void
logFlush()
Flush the output stream - if there is one.protected void
maybeSetResultPropertyValue
(int result) Helper method to set result property to the passed in value if appropriate.protected Execute
Create an Execute instance with the correct working directory set.protected String
resolveExecutable
(String exec, boolean mustSearchPath) The method attempts to figure out where the executable is so that we can feed the full path.protected void
Run the command using the given Execute instance.protected final void
runExecute
(Execute exe) A Utility method for this classes and subclasses to run an Execute instance (an external command).void
setAppend
(boolean append) Set whether output should be appended to or overwrite an existing file.void
setCommand
(Commandline cmdl) Sets a command line.void
Set the working directory of the process.void
setDiscardError
(boolean discard) Whether error output should be discarded.void
setDiscardOutput
(boolean discard) Whether output should be discarded.void
Set the File to which the error stream of the process should be redirected.void
setErrorProperty
(String errorProperty) Sets the name of the property whose value should be set to the error of the process.void
setExecutable
(String value) Set the name of the executable program.void
setFailIfExecutionFails
(boolean flag) Set whether to stop the build if program cannot be started.void
setFailonerror
(boolean fail) Fail if the command exits with a non-zero return code.void
Set the input file to use for the task.void
setInputString
(String inputString) Set the string to use as input.void
setLogError
(boolean logError) Controls whether error output of exec is logged.void
setNewenvironment
(boolean newenv) Do not propagate old environment when new environment variables are specified.void
List of operating systems on which the command may be executed.void
setOsFamily
(String osFamily) Restrict this execution to a single OS Familyvoid
File the output of the process is redirected to.void
setOutputproperty
(String outputProp) Sets the property name whose value should be set to the output of the process.void
setResolveExecutable
(boolean resolveExecutable) Set whether to attempt to resolve the executable to a file.void
setResultProperty
(String resultProperty) Sets the name of a property in which the return code of the command should be stored.void
setSearchPath
(boolean searchPath) Set whether to search nested, then system PATH environment variables for the executable.void
setSpawn
(boolean spawn) Set whether or not you want the process to be spawned.void
setTimeout
(Integer value) Set the timeout in milliseconds after which the process will be killed.void
setTimeout
(Long value) Set the timeout in milliseconds after which the process will be killed.protected void
Set up properties on the redirector that we needed to store locally.void
setVMLauncher
(boolean vmLauncher) Set whether to launch new process with VM, otherwise use the OS's shell.Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
-
Field Details
-
failOnError
protected boolean failOnError -
newEnvironment
protected boolean newEnvironment -
cmdl
-
redirector
-
redirectorElement
-
-
Constructor Details
-
ExecTask
public ExecTask()Create an instance. Needs to be configured by binding to a project. -
ExecTask
create an instance that is helping another task. Project, OwningTarget, TaskName and description are all pulled out- Parameters:
owner
- task that we belong to
-
-
Method Details
-
setSpawn
public void setSpawn(boolean spawn) Set whether or not you want the process to be spawned. Default is false.- Parameters:
spawn
- if true you do not want Ant to wait for the end of the process.- Since:
- Ant 1.6
-
setTimeout
Set the timeout in milliseconds after which the process will be killed.- Parameters:
value
- timeout in milliseconds.- Since:
- Ant 1.5
-
setTimeout
Set the timeout in milliseconds after which the process will be killed.- Parameters:
value
- timeout in milliseconds.
-
setExecutable
Set the name of the executable program.- Parameters:
value
- the name of the executable program.
-
setDir
Set the working directory of the process.- Parameters:
d
- the working directory of the process.
-
setOs
List of operating systems on which the command may be executed.- Parameters:
os
- list of operating systems on which the command may be executed.
-
getOs
List of operating systems on which the command may be executed.- Returns:
- String
- Since:
- Ant 1.8.0
-
setCommand
-
setOutput
File the output of the process is redirected to. If error is not redirected, it too will appear in the output.- Parameters:
out
- name of a file to which output should be sent.
-
setInput
Set the input file to use for the task.- Parameters:
input
- name of a file from which to get input.
-
setInputString
Set the string to use as input.- Parameters:
inputString
- the string which is used as the input source.
-
setLogError
public void setLogError(boolean logError) Controls whether error output of exec is logged. This is only useful when output is being redirected and error output is desired in the Ant log.- Parameters:
logError
- set to true to log error output in the normal ant log.
-
setError
Set the File to which the error stream of the process should be redirected.- Parameters:
error
- a file to which stderr should be sent.- Since:
- Ant 1.6
-
setOutputproperty
Sets the property name whose value should be set to the output of the process.- Parameters:
outputProp
- name of property.
-
setErrorProperty
Sets the name of the property whose value should be set to the error of the process.- Parameters:
errorProperty
- name of property.- Since:
- Ant 1.6
-
setFailonerror
public void setFailonerror(boolean fail) Fail if the command exits with a non-zero return code.- Parameters:
fail
- if true fail the command on non-zero return code.
-
setNewenvironment
public void setNewenvironment(boolean newenv) Do not propagate old environment when new environment variables are specified.- Parameters:
newenv
- if true, do not propagate old environment when new environment variables are specified.
-
setResolveExecutable
public void setResolveExecutable(boolean resolveExecutable) Set whether to attempt to resolve the executable to a file.- Parameters:
resolveExecutable
- if true, attempt to resolve the path of the executable.
-
setSearchPath
public void setSearchPath(boolean searchPath) Set whether to search nested, then system PATH environment variables for the executable.- Parameters:
searchPath
- if true, search PATHs.
-
getResolveExecutable
public boolean getResolveExecutable()Indicates whether to attempt to resolve the executable to a file.- Returns:
- the resolveExecutable flag
- Since:
- Ant 1.6
-
addEnv
Add an environment variable to the launched process.- Parameters:
var
- new environment variable.
-
createArg
Adds a command-line argument.- Returns:
- new command line argument created.
-
setResultProperty
Sets the name of a property in which the return code of the command should be stored. Only of interest if failonerror=false.- Parameters:
resultProperty
- name of property.- Since:
- Ant 1.5
-
maybeSetResultPropertyValue
protected void maybeSetResultPropertyValue(int result) Helper method to set result property to the passed in value if appropriate.- Parameters:
result
- value desired for the result property value.
-
setFailIfExecutionFails
public void setFailIfExecutionFails(boolean flag) Set whether to stop the build if program cannot be started. Defaults to true.- Parameters:
flag
- stop the build if program cannot be started.- Since:
- Ant 1.5
-
setAppend
public void setAppend(boolean append) Set whether output should be appended to or overwrite an existing file. Defaults to false.- Parameters:
append
- if true append is desired.- Since:
- 1.30, Ant 1.5
-
setDiscardOutput
public void setDiscardOutput(boolean discard) Whether output should be discarded.Defaults to false.
- Parameters:
discard
- if true output streams are discarded.- Since:
- Ant 1.10.10
- See Also:
-
setDiscardError
public void setDiscardError(boolean discard) Whether error output should be discarded.Defaults to false.
- Parameters:
discard
- if true error streams are discarded.- Since:
- Ant 1.10.10
- See Also:
-
addConfiguredRedirector
Add aRedirectorElement
to this task.- Parameters:
redirectorElement
-RedirectorElement
.- Since:
- Ant 1.6.2
-
setOsFamily
Restrict this execution to a single OS Family- Parameters:
osFamily
- the family to restrict to.
-
getOsFamily
Restrict this execution to a single OS Family- Returns:
- the family to restrict to.
- Since:
- Ant 1.8.0
-
resolveExecutable
The method attempts to figure out where the executable is so that we can feed the full path. We first try basedir, then the exec dir, and then fallback to the straight executable name (i.e. on the path).- Parameters:
exec
- the name of the executable.mustSearchPath
- if true, the executable will be looked up in the PATH environment and the absolute path is returned.- Returns:
- the executable as a full path if it can be determined.
- Since:
- Ant 1.6
-
execute
Do the work.- Overrides:
execute
in classTask
- Throws:
BuildException
- in a number of circumstances:- if failIfExecFails is set to true and the process cannot be started
- the java13command launcher can send build exceptions
- this list is not exhaustive or limitative
-
checkConfiguration
Has the user set all necessary attributes?- Throws:
BuildException
- if there are missing required parameters.
-
setupRedirector
protected void setupRedirector()Set up properties on the redirector that we needed to store locally. -
isValidOs
protected boolean isValidOs()Is this the OS the user wanted?- Returns:
- boolean.
true
if the os and osfamily attributes are null.true
if osfamily is set, and the os family and must match that of the current OS, according to the logic ofOs.isOs(String, String, String, String)
, and the result of theos
attribute must also evaluate true.-
true
if os is set, and the system.property os.name is found in the os attribute, false
otherwise.
-
setVMLauncher
public void setVMLauncher(boolean vmLauncher) Set whether to launch new process with VM, otherwise use the OS's shell. Default value is true.- Parameters:
vmLauncher
- true if we want to launch new process with VM, false if we want to use the OS's shell.
-
prepareExec
Create an Execute instance with the correct working directory set.- Returns:
- an instance of the Execute class.
- Throws:
BuildException
- under unknown circumstances.
-
runExecute
A Utility method for this classes and subclasses to run an Execute instance (an external command).- Parameters:
exe
- instance of the execute class.- Throws:
IOException
- in case of problem to attach to the stdin/stdout/stderr streams of the process.
-
runExec
Run the command using the given Execute instance. This may be overridden by subclasses.- Parameters:
exe
- instance of Execute to run.- Throws:
BuildException
- if the new process could not be started only if failIfExecFails is set to true (the default).
-
createHandler
Create the StreamHandler to use with our Execute instance.- Returns:
- instance of ExecuteStreamHandler.
- Throws:
BuildException
- under unknown circumstances.
-
createWatchdog
Create the Watchdog to kill a runaway process.- Returns:
- instance of ExecuteWatchdog.
- Throws:
BuildException
- under unknown circumstances.
-
logFlush
protected void logFlush()Flush the output stream - if there is one.
-