|
Myrmidon
|
|
What is Myrmidon?
|
Myrmidon is one of the Ant 2 proposals currently in development. You can
read more about the goals of Ant 2
here.
Myrmidon is a general-purpose task engine. It contains the basic
building blocks for assembling any sort of task-based tool. Ant 2
is an example of such a tool, which could be assembled using the Myrmidon task
engine, and a library of build related tasks.
Currently, Myrmidon is a prototype of what a task engine might look. It
includes a small set of tasks and data types. We are currently porting
many of the Ant 1.x tasks to the Myrmidon task engine.
|
|
Differences to Ant 1.x
|
Some of the differences between Ant 1.x and Myrmidon:
-
Groups of tasks can be assembled into self-describing antlib task
libraries. This makes it very easy to distribute and install tasks and data-types.
-
A project can import other projects, and reference their targets.
-
Changes to the property model:
- Properties and data type references now share the same namespace.
- Properties are mutable.
- Properties are scoped into global, local, and parent contexts.
if and unless checks now test the property
value against false, in addition to testing set/not-set.
-
Changes to task and data-type API:
- An interface based API, through which a task interacts with the
task engine, and the services it provides.
- A well-defined object lifecycle.
- Polymorphic types are supported when objects are configured.
- Reference handling is handled automatically when objects are configured.
- Aspects can be used to decorate tasks, to add facilities like logging,
error handling, or user preferences.
-
A set of well-defined services and APIs have been introduced, to allow
tasks to do their work without depending on other tasks:
- Execute external commands.
- Execute other tasks.
- Manage ClassLoaders and Class-paths.
- Virtual file system (in progress).
- Execute Java applications (in progress).
- ...
There are plenty more features planned. You can read about them here.
|
|