_antProject.addBuildListener(listeners[i]);
}
try {
fireBuildEvent(new BuildEvent(
_antProject), BuildEventType.BUILD_STARTED);
Vector targetNames = new Vector();
if(_targets == null || _targets.length == 0) {
targetNames.add(_antProject.getDefaultTarget());
}
else {
for(int i = 0; i < _targets.length; i++) {
targetNames.add(_targets[i].getName());
}
}
// Execute build on selected targets. XXX It would be
// nice if the Project API supported passing in target
// objects rather than String names.
_antProject.executeTargets(targetNames);
}
catch(BuildException ex) {
BuildEvent errorEvent = new BuildEvent(_antProject);
errorEvent.setException(ex);
errorEvent.setMessage(ex.getMessage(), Project.MSG_ERR);
fireBuildEvent(errorEvent, BuildEventType.MESSAGE_LOGGED);
}
finally {
fireBuildEvent(new BuildEvent(
_antProject), BuildEventType.BUILD_FINISHED);
// Remove the build listeners.
for(int i = 0; i < listeners.length; i++) {
_antProject.removeBuildListener(listeners[i]);