Dies ist aus der ANT-Dokumentation und erklärt es ziemlich gut.
Warum noch ein Build-Tool, wenn es schon machen, gnumake, nmake, Marmelade, und andere? Weil alle diese Werkzeuge Beschränkungen haben, die der ursprüngliche Autor der Ant mit Software über mehrere Plattformen nicht leben konnte. Make-like-Werkzeuge sind inhärent shell-based: sie bewerten eine Reihe von Abhängigkeiten, dann führen Sie Befehle nicht anders als, was Sie auf eine Shell ausgeben würden. Dies bedeutet, dass Sie einfach diese Tools erweitern können, indem Sie ein beliebiges Programm für das Betriebssystem, das Sie bearbeiten, verwenden oder schreiben; Dies bedeutet jedoch auch , dass Sie sich auf das Betriebssystem beschränken, oder mindestens den Betriebssystemtyp wie Unix, , an dem Sie arbeiten.
Makefiles sind von Natur aus auch böse. Jeder, der an ihnen für jede Zeit gearbeitet hat, ist in den gefürchteten Tab Problem gerannt. "Führt mein Befehl nicht aus, weil ich einen Platz vor meiner Registerkarte habe? !!" sagte der ursprüngliche Autor von Ant viel zu oft. Werkzeuge wie Marmelade kümmerten sich um einen großen Grad, aber noch ein anderes Format zu verwenden und erinnern.
Ant ist anders. Anstelle eines Modells , in dem es um Shell-basierte Befehle erweitert wird, wird Ant um Java-Klassen erweitert. Anstatt Shell Befehle zu schreiben, sind die Konfigurationsdateien XML-basiert, Aufruf eines Zielbaums wo verschiedene Aufgaben ausgeführt werden. Jede Aufgabe wird von einem Objekt ausgeführt, das eine bestimmte Task Schnittstelle implementiert.
Zugegeben, das entfernt einige der Ausdruckskraft, die in der Lage inhärent ist eine Shell Befehl wie find . -name foo -exec rm {}
zu konstruieren, aber es gibt Ihnen die Möglichkeit, Cross-Plattform zu sein - überall zu arbeiten und überall . Und hey, wenn Sie wirklich eine Shell Befehl ausführen müssen, Ant hat eine Aufgabe, die ermöglicht verschiedene Befehle ausgeführt basierend auf dem Betriebssystem ausgeführt werden, es ist Ausführen auf.
effektiv ein Duplikat http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –
(In, dass die Antworten auf diese Frage direkt diese Frage beantworten.) –