Package org.eclipse.ant.core
Class AntRunner
- java.lang.Object
-
- org.eclipse.ant.core.AntRunner
-
- All Implemented Interfaces:
IApplication
public class AntRunner extends Object implements IApplication
Entry point for running Ant builds inside Eclipse (within the same JRE). Clients may instantiate this class; it is not intended to be subclassed.Usage note:
Clients may use theaddBuildListener
,addBuildLogger
andsetInputHandler
methods to configure classes that will be invoked during the build. When using these methods, it is necessary to package the classes in a jar that is not on the client plugin's classpath. The jar must be added to the Ant classpath. One way to add the jar to the Ant classpath is to use theorg.eclipse.ant.core.extraClasspathEntries
extension.Refer to the "Platform Ant Support" chapter of the Programmer's Guide section in the Platform Plug-in Developer Guide for complete details.
- Restriction:
- This class is not intended to be subclassed by clients.
-
-
Field Summary
Fields Modifier and Type Field Description protected String
antHome
protected String[]
arguments
protected String
buildFileLocation
protected List<String>
buildListeners
protected String
buildLoggerClassName
protected URL[]
customClasspath
protected String
inputHandlerClassName
protected int
messageOutputLevel
protected String[]
propertyFiles
protected String[]
targets
protected Map<String,String>
userProperties
-
Fields inherited from interface org.eclipse.equinox.app.IApplication
EXIT_OK, EXIT_RELAUNCH, EXIT_RESTART
-
-
Constructor Summary
Constructors Constructor Description AntRunner()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBuildListener(String className)
Adds a build listener.void
addBuildLogger(String className)
Sets the build logger.void
addUserProperties(Map<String,String> properties)
Adds user-defined properties.TargetInfo[]
getAvailableTargets()
Returns the buildfile target information.protected void
handleInvocationTargetException(Object runner, Class<?> classInternalAntRunner, InvocationTargetException e)
static boolean
isBuildRunning()
Returns whether an Ant build is already in progress Only one Ant build can occur at any given time.protected void
problemLoadingClass(Throwable e)
void
run()
Runs the build file.Object
run(Object argArray)
Invokes the building of a project object and executes a build using either a given target or the default target.void
run(IProgressMonitor monitor)
Runs the build file.void
setAntHome(String antHome)
Sets the Ant home to use for this buildvoid
setArguments(String arguments)
Sets the arguments to be passed to the build (e.g.void
setArguments(String[] arguments)
Sets the arguments to be passed to the build (e.g.void
setBuildFileLocation(String buildFileLocation)
Sets the build file location on the file system.void
setCustomClasspath(URL[] customClasspath)
Sets the custom classpath to use for this buildvoid
setExecutionTargets(String[] executionTargets)
Sets the targets and execution order.void
setInputHandler(String className)
Sets the input handler.void
setMessageOutputLevel(int level)
Set the message output level.void
setPropertyFiles(String[] propertyFiles)
Sets the user specified property files.Object
start(IApplicationContext context)
Invokes the building of a project object and executes a build using either a given target or the default target.void
stop()
Forces this running application to exit.
-
-
-
Field Detail
-
buildFileLocation
protected String buildFileLocation
-
targets
protected String[] targets
-
messageOutputLevel
protected int messageOutputLevel
-
buildLoggerClassName
protected String buildLoggerClassName
-
inputHandlerClassName
protected String inputHandlerClassName
-
arguments
protected String[] arguments
-
propertyFiles
protected String[] propertyFiles
-
customClasspath
protected URL[] customClasspath
-
antHome
protected String antHome
-
-
Method Detail
-
setBuildFileLocation
public void setBuildFileLocation(String buildFileLocation)
Sets the build file location on the file system.- Parameters:
buildFileLocation
- the file system location of the build file
-
setMessageOutputLevel
public void setMessageOutputLevel(int level)
Set the message output level.Valid values are:
org.apache.tools.ant.Project.ERR
,org.apache.tools.ant.Project.WARN
,org.apache.tools.ant.Project.INFO
,org.apache.tools.ant.Project.VERBOSE
ororg.apache.tools.ant.Project.DEBUG
- Parameters:
level
- the message output level
-
setArguments
public void setArguments(String arguments)
Sets the arguments to be passed to the build (e.g. -Dos=win32 -Dws=win32 - verbose).- Parameters:
arguments
- the arguments to be passed to the build
-
setArguments
public void setArguments(String[] arguments)
Sets the arguments to be passed to the build (e.g. -Dos=win32 -Dws=win32 -verbose).- Parameters:
arguments
- the arguments to be passed to the build- Since:
- 2.1
-
setExecutionTargets
public void setExecutionTargets(String[] executionTargets)
Sets the targets and execution order.- Parameters:
executionTargets
- which targets should be run and in which order
-
addBuildListener
public void addBuildListener(String className)
Adds a build listener. The parameterclassName
is the class name of anorg.apache.tools.ant.BuildListener
implementation. The class will be instantiated at runtime and the listener will be called on build events (org.apache.tools.ant.BuildEvent
).Refer to
Usage Note
for implementation details.- Parameters:
className
- a build listener class name
-
addBuildLogger
public void addBuildLogger(String className)
Sets the build logger. The parameterclassName
is the class name of anorg.apache.tools.ant.BuildLogger
implementation. The class will be instantiated at runtime and the logger will be called on build events (org.apache.tools.ant.BuildEvent
). Only one build logger is permitted for any build.Refer to
Usage Note
for implementation details.- Parameters:
className
- a build logger class name
-
addUserProperties
public void addUserProperties(Map<String,String> properties)
Adds user-defined properties. Keys and values must be String objects.- Parameters:
properties
- a Map of user-defined properties
-
getAvailableTargets
public TargetInfo[] getAvailableTargets() throws CoreException
Returns the buildfile target information.- Returns:
- an array containing the target information
- Throws:
CoreException
- Thrown if problem is encountered determining the targets- Since:
- 2.1
- See Also:
TargetInfo
-
run
public void run(IProgressMonitor monitor) throws CoreException
Runs the build file. If a progress monitor is specified it will be available during the script execution as a reference in the Ant Project (org.apache.tools.ant.Project.getReferences()
). A long- running task could, for example, get the monitor during its execution and check for cancellation. The key value to retrieve the progress monitor instance isAntCorePlugin.ECLIPSE_PROGRESS_MONITOR
. Only one build can occur at any given time. Sets the current threads context class loader to the AntClassLoader for the duration of the build.- Parameters:
monitor
- a progress monitor, ornull
if progress reporting and cancellation are not desired- Throws:
CoreException
- Thrown if a build is already occurring or if an exception occurs during the build
-
handleInvocationTargetException
protected void handleInvocationTargetException(Object runner, Class<?> classInternalAntRunner, InvocationTargetException e) throws CoreException
- Throws:
CoreException
-
problemLoadingClass
protected void problemLoadingClass(Throwable e) throws CoreException
- Throws:
CoreException
-
run
public void run() throws CoreException
Runs the build file.- Throws:
CoreException
- Thrown if a build is already occurring or if an exception occurs during the build
-
run
public Object run(Object argArray) throws Exception
Invokes the building of a project object and executes a build using either a given target or the default target. This method is called when running Eclipse headless and specifyingorg.eclipse.ant.core.antRunner
as the application. Sets the current threads context class loader to the AntClassLoader for the duration of the build.- Parameters:
argArray
- the command line arguments- Returns:
- an exit object (
EXIT_OK
) indicating normal termination if no exception occurs - Throws:
Exception
- if a problem occurred during the buildfile execution
-
setInputHandler
public void setInputHandler(String className)
Sets the input handler. The parameterclassName
is the class name of anorg.apache.tools.ant.input.InputHandler
implementation. The class will be instantiated at runtime and the input handler will be used to respond to <input> requests Only one input handler is permitted for any build.Refer to
Usage Note
for implementation details.- Parameters:
className
- an input handler class name- Since:
- 2.1
-
setPropertyFiles
public void setPropertyFiles(String[] propertyFiles)
Sets the user specified property files.- Parameters:
propertyFiles
- array of property file paths- Since:
- 2.1
-
setCustomClasspath
public void setCustomClasspath(URL[] customClasspath)
Sets the custom classpath to use for this build- Parameters:
customClasspath
- array of URLs that define the custom classpath
-
setAntHome
public void setAntHome(String antHome)
Sets the Ant home to use for this build- Parameters:
antHome
- String specifying the Ant home to use- Since:
- 2.1
-
isBuildRunning
public static boolean isBuildRunning()
Returns whether an Ant build is already in progress Only one Ant build can occur at any given time.- Returns:
- boolean
- Since:
- 2.1
-
start
public Object start(IApplicationContext context) throws Exception
Invokes the building of a project object and executes a build using either a given target or the default target. This method is called when running Eclipse headless and specifyingorg.eclipse.ant.core.antRunner
as the application. Sets the current threads context class loader to theAntClassLoader
for the duration of the build.- Specified by:
start
in interfaceIApplication
- Parameters:
context
- the context used to start the application- Returns:
- an exit object (
EXIT_OK
) indicating normal termination if no exception occurs - Throws:
Exception
- if a problem occurred during the buildfile execution- See Also:
IApplication.start(IApplicationContext)
-
stop
public void stop()
Description copied from interface:IApplication
Forces this running application to exit. This method should wait until the running application is ready to exit. TheIApplication.start(IApplicationContext)
should already have exited or should exit very soon after this method exitsThis method is only called to force an application to exit. This method will not be called if an application exits normally from the
IApplication.start(IApplicationContext)
method.Note: This method is called by the platform; it is not intended to be called directly by clients.
- Specified by:
stop
in interfaceIApplication
-
-