# Apache Myrmidon - Myrmidon

|  | Apache Myrmidon

Myrmidon

- Introduction
- Get Involved
- Building Myrmidon
- Todo List

User Guide

- Build file
- Virtual File System
- Ant1 Compatibility Layer
- Differences to Ant1
- My First Task

Extending Ant

- Configuration HOWTO
- Converter HOWTO
- Type HOWTO
- ClassLoader HOWTO
- Library HOWTO

Container Design

What is Ant?

> Ant is a cross-platform build tool that features ease of use and extensibility as it's primary goal.

> Why another build tool when there is already make, gnumake, nmake, jam, and others? Make-like tools are inherently shell-based; they execute native commands and shell scripts to perform the work associated with the build process. So to extend the the tool by writing a program or script executable by the OS you are on. This makes it difficult to achieve portability between platforms.

> Ant is a different beast. Instead of using OS-specific commands to extend the build process, you leverage the cross-platform features of Java to write "tasks". This makes it much easier to achieve a portal build process between platforms. Ant also differs in that it uses XML to describe the build process.

What is Myrmidon?

> Myrmidon is a proposal for Ant 2. Ant2 is the next evolution of the Ant build tool aimed at removing many of the limitations of the Ant1.x product. In particular it aims to;

> - Remove ambiguities and points of confusion for build file writers.
> - Ease deployment and management of 3rd party tasks and dependencies.
> - Simplify development of tasks by task-writers.
> - Enable ad-hoc "tasks" to be written inside build file, probably using well known scripting languages such as python and javascript. (Possible in ant1.x but prohibitively difficult).
> - Integrate templating technologies such as XSLT, velocity etc to enable development of reusable build file elements.

> You can read more about the goals of Ant 2 here.

> Myrmidon was specifically designed as both a tool and as an API library that can be reused in other products. 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 container, and a library of build related tasks. In the future expect to see Testing frameworks, Job Schedulers (ie Cron managers), shells and install tools based on the myrmidon base.

A Rose by any other name ...

> The name Myrmidon is a derivation of a mythological name for some ants that were turned into soldiers by the god Zeus. It came to mean "a subordinate who executes orders unquestioningly" which seemed suitable for a task execution/build tool. A more complete description stolen from http://bondi-blue.parlez.com/previous_words/myrmidon.txt.

> <quote> The appellation Myrmidon was derived from the Greek word "myrmex", meaning ant. According to Greek mythology, the Myrmidons were transformed into humans by the god Zeus as an act of kindness to his son Aeacus. King Aeacus, captivated by a colony of ants, prayed that he should receive an increase in population equal to the number of ants before him. When he awoke the next day, the ants were his human subjects. Thereafter, they were known as the Myrmidons. See "The Iliad" for Homers' account of the Myrmidons during the Trojan War. </quote>

Copyright © 2000-2002, Apache Software Foundation