<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />










<!-- /*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../../org.eclipse.wtp.doc.user/common.css" />

<title>General Ant tasks</title>
</head>
<body id="ph-antgeneral"><a name="ph-antgeneral"><!-- --></a>
<h1 class="topictitle1">General Ant tasks</h1>
<div><p></p>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="../topics/tantcapturebuildmessages.html">captureBuildMessages</a></strong><br />
This task captures Ant build messages and allows them to be searched
or displayed, and allows conditional Ant build failures depending on whether
or not a specified string is in the captured build messages.</li>
<li class="ulchildlink"><strong><a href="../topics/tantcompilew.html">compileWorkspace</a></strong><br />
This task compiles the entire workspace. It performs the same action
as javac. While this task is running, all the validation and other builders
are turned of</li>
<li class="ulchildlink"><strong><a href="../topics/tantgetj.html">getJavacErrorCount</a></strong><br />
This task gets the error count for the last internal javac compilation
of the specified project.</li>
<li class="ulchildlink"><strong><a href="../topics/tantgetp.html">getProjectData</a></strong><br />
This task gets the specified project information.</li>
<li class="ulchildlink"><strong><a href="../topics/tantproj.html">projectBuild</a></strong><br />
This task builds the specified project.</li>
<li class="ulchildlink"><strong><a href="../topics/tantprojectgeterrors.html">projectGetErrors</a></strong><br />
This task gets the errors for the specified project. It is a subset
of the projectBuild task (it does not do a build, it just gets project errors
regardless of how they were created)</li>
<li class="ulchildlink"><strong><a href="../topics/tantprojectimport.html">projectImport</a></strong><br />
This task imports an existing file system project into a workspace.</li>
<li class="ulchildlink"><strong><a href="../topics/tantprojectsetbuild.html">projectSetBuild</a></strong><br />
This task builds a set of Eclipse projects using an existing Eclipse
team Project Set File ("PSF"). The PSF must have been first created using
an Eclipse team "Project Set Export" command, and then the task projectSetImport
must have been used to import those projects into a workspace.</li>
<li class="ulchildlink"><strong><a href="../topics/tantprojectsetimport.html">projectSetImport</a></strong><br />
This task imports an existing Eclipse team Project Set File (PSF)
into a workspace. The PSF must have been first created using an Eclipse team
"Project Set Export" command.</li>
<li class="ulchildlink"><strong><a href="../topics/tantsetd.html">setDebugInfo</a></strong><br />
This task sets the internal Java™ compilation debug level, and returns
the current settings.</li>
<li class="ulchildlink"><strong><a href="../topics/tantworkspacebuild.html">workspaceBuild</a></strong><br />
This task builds the entire workspace.</li>
<li class="ulchildlink"><strong><a href="../topics/tantworkspacegeterrors.html">workspaceGetErrors</a></strong><br />
This task gets the errors for the entire workspace. It is a subset
of the workspaceBuild task (it does not do a build, it just gets workspace
errors regardless of how they were created).</li>
<li class="ulchildlink"><strong><a href="../topics/tantworkspacepreferencefile.html">workspacePreferenceFile</a></strong><br />
This task reads a property file containing Eclipse workspace preferences
and sets those preferences.</li>
<li class="ulchildlink"><strong><a href="../topics/tantworkspacepreferenceget.html">workspacePreferenceGet</a></strong><br />
This task gets Eclipse workspace preferences.</li>
<li class="ulchildlink"><strong><a href="../topics/tantworkspacepreferenceset.html">workspacePreferenceSet</a></strong><br />
This task sets Eclipse workspace preferences.</li>
</ul>

<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="../topics/tjant.html">Working with Ant</a></div>
</div>
</div></body>
</html>