Project types

Since Eclipse is a platform that is not only used for developing Java applications but that works as a basis for development environments for several languages (for example C/C++, Python, PHP) and use cases (for example Web Development, Plug-in Development, Database development) it has an extensible concept of projects. There is not the one project type that is identical for all purposes. The most simple project type is the General Project that is defined in Eclipse' platform layer and that is more or less a "container" for files. A General Project doesn't know anything about programing languages, compilers etc. It just have a name and a location and it can be managed by the version control system features Eclipse provides (CVS, Subversion etc).

To support more than the General Project type, projects can get several natures assigned. A nature is a unique identifier (typically provided by a Plug-in) that is stored in the project's .project file. Plug-ins (and Features) installed in Eclipse (for example the Java Tooling or the Plug-in dev. env) can access the natures of a project and can deceide if they need to participate in someway in that project. Some Plug-ins need more configuration options (like a classpath) that cannot be stored inside the .project. Such Plug-ins typically work in addition with proprietary config files that are stored in the project (often as hidden files or directories starting with a .). An example is the .classpath file that specifies the Java classpath of a JDT/Java project. Of course it's possible that projects have more than one nature assigned. A Plug-in project from the Plug-in development environment (PDE) for example contains among the javanature it's own org.eclipse.pde.PluginNature.

Ant4Eclipse' tasks are grouped in layers that are related to a specific feature (as they are in Eclipse).

  • Platform: Tasks from this layer work with all projects, even with General projects.
  • JDT: The JDT-based tasks add Java-specific features, like resolving the classpath of a project.
  • PDE: The PDE layer contains the support building Eclipse Plug-ins and features. They can only be used with PDE-projects. Since a PDE project is a JDT project as well, you can use all tasks from JDT layer with your PDE projects.
  • STS: Work with projects from the SpringSource ToolSuite. This tasks are work-in-progress and will be added in later releases to ant4eclipse
  • Python: Support for python projects