### Generating Ant scripts from the command line

Ant scripts are typically generated using the Plug-in Development Environment (PDE), but it is also possible to generate them by hand or from other scripts.
Indeed PDE exposes Ant tasks to generate the various build scripts. Build script generation facilities reside in the following tasks. Arguments are also listed for each task.

- eclipse.fetch: generates an Ant script that fetches content from a CVS repository. The eclipse fetch is driven by a file whose format is described below (see Directory file format).

  elements : a comma separated list of entries that will be fetched. Entries are expected to be of the form type@id as specified in the directory file format;

  buildDirectory : the directory into which fetch scripts will be generated and into which features and plug-in projects will be checked out;

  directory : the path to a directory file;

  children : optional, specifies whether the script generation for contained plug-ins and fragments should be invoked. Default is set to true;

  cvspassfile : optional, the name of a CVS password file;

  fetchTag : optional, overrides the tag provided in directory file by the given value;

  configInfo : optional, an ampersand separated list of configuration indicates the targeted configuration. The default is set to be platform independent;

  install : deprecated, use buildDirectory instead;

  scriptName : deprecated, the name is now always generated to be fetch_{elementId}.xml.

- eclipse.buildScript: generates a build.xml file for the given elements.

  elements : the entry to be fetched from the repository. Entry is expected to be of the form type@id as specified in the directory file format;

  buildDirectory : the directory where the features and plug-ins to build are located;

  children : optional, specifies whether the script generation for contained plug-ins and fragments should be invoked. Default is set to true;

  recursiveGeneration : optional, specified whether the script generation for contained features should be invoked. Default is set to true;

  devEntries : optional, a comma separated list of directories to be given to the compile classpath;

  buildingOSGi : optional, indicates if the pluginsflag indicating if the target is 3.0 or 2.1;

  baseLocation : optional, indicates a folder which contains installed features and folders;

  configInfo : optional, an ampersand separated list of configuration indicates the targeted configuration. The default is set to be platform independent;

  pluginPath : optional, a comma separated list of URLs pointing to installed plug-ins. If specified, this list must include the whole list of plug-ins to be compiled;

  install : deprecated, use buildDirectory instead.

#### Examples

    <eclipse.fetch elements="plugin@org.eclipse.core.boot"
    		buildDirectory="c:\toBuild"
    		directory="directory.txt"
    		configInfo="win32,win32,x86 & linux, motif, x86"
    		/>

    <eclipse.buildScript elements="plugin@org.eclipse.core.boot"
    		buildDirectory="c:\toBuild"/>

### Directory file format

Directory files are used to indicate where the plug-ins and features are located, as well as indicating which version should be fetched. It is a Java property file whose line format is "type@id=version, repositoryLocation, password,path".

- type
: a string describing the type of the element. It must be one of the following: plugin, fragment, feature;
- id
: the name of the CVS module where the element is located. Note that the feature/plugin/fragment.xml must be in the root of this module;
- version
: an existing version tag in the repository;
- repositoryLocation
: a CVS repository location;
- password
: optional, a password to connect to this repository;
- path
- : optional, the cvs module name and path to the element manifest.

#### Example of a directory file

`plugin@org.eclipse.pde.build=v20040622,:pserver:anonymous@dev.eclipse.org:/home/eclipse,
feature@org.eclipse.pde.builder=v20040622,:pserver:anonymous@dev.eclipse.org:/home/eclipse,,org.eclipse.pde.build/feature
plugin@org.eclipse.osgi=v20040617a,:pserver:anonymous@dev.eclipse.org:/home/eclipse,`

### Using the targets

The tasks previously described only work if Eclipse is running. In the particular scenario of executing Ant scripts using Eclipse tasks,the scripts must be run using the Eclipse Ant Runner application. The command line for this particular case is the following:
`java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -buildfile build.xml`

Note that the parameters appearing after the application are the parameters that are passed to Ant.