Donnerstag, 24. Mai 2012


Artikel

Juli 2010 | Artikel

"Hat ANT noch Zukunft?"

(Link zum Artikel: http://www.entwickler-magazin.de/jaxenter//003207)

Maven vs. Ant vs. Gradle

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Im interaktiven Vergleich zwischen den Build-Tools Maven, Ant und Gradle stellt Markus Stäuble spannende Fragen an Matthew McCullough, Hans Dockter und Jan Matèrne.

1. Mit welchen Build-Systemen haben Sie in Ihrer Praxis bereits Erfahrungen gesammelt?

Markus Stäuble: In Projekten habe ich bereits mit GNU Make, Apache ANT (mit und ohne Ivy) und Apache Maven 1/2 gearbeitet.

2. Wo sehen Sie die Stärken Ihres bevorzugten Build-Systems?

Markus Stäuble: Mein bevorzugtes Buildsystem ist derzeit Maven 2. Die Stärken sehe ich im integrierten Dependency Management und auch in der Verbreitung des Buildsystems. Durch die Verbreitung ist die Auswahl an Support-Möglichkeiten gewährleistet. Die größte Stärke sehe ich in der von Maven 2 vorgegebenen Konvention. Dadurch kann man in ein neues Projekt einsteigen und auch gleich erzeugen. Dies halte ich in Bezug auf Wartbarkeit für eine unverzichtbare Eigenschaft.

3. Wo sehen Sie Schwachpunkte der anderen Build-Systeme?

Markus Stäuble: Bei ANT ist die Schwäche die vorhandene Freiheit und die fehlenden Konventionen. Gradle scheint noch stark im Aufbau zu sein. Jedenfalls erwecken die vorhanden "tbd" in der Dokumentation diesen Anschein. Auch dass die DSL beim Umstieg von 0.5.2 auf 0.6 geändert wurde, macht es für langfristige Projekte schwierig, auf dieses Projekt zu setzen.

4. Welche Fragen haben Sie an Matthew McCullough (zu Maven), Hans Dockter (zu Gradle) und Jan Matèrne (zu ANT)?

Markus Stäuble: Matthew McCullough: Warum sollte man Polyglot Maven einsetzen und welchen Vorteil bietet es? Verfolgt man die Idee, Maven auch für andere Projekte als reine Java-Projekte einzusetzen? Was wird die Umstellung auf Guice für Plug-ins bedeuten und wann wird diese Umstellung abgeschlossen sein?

Hans Dockter: Wann wird es eine Version 1.0 geben? Warum gibt es Gradle, was war an den anderen Buildsystem störend? Besteht mit Gradle nicht wieder das Problem, dass zuviel im Build programmiert wird?

Jan Matèrne: Hat ANT noch Zukunft? Die Releasezyklen der letzten Versionen lassen darauf schließen, dass ANT langsam am Endpunkt angekommen ist. Täuscht das? An welchen großen Punkten wird bei ANT noch Änderungen/Erweiterungen zu erwarten sein. Warum sollte ein neues Projekt noch auf ANT setzen?

Vielen Dank an Markus Stäuble für seine Einschätzung. Und welche Erfahrungen haben Sie mit den verschiedenen Build-Tools gemacht?

Markus Stäuble ist Senior IT-Consultant bei der MRM Worldwide GmbH. Er schreibt regelmäßig Artikel für diverse Fachzeitschriften und gibt sein Wissen gerne in Vorträgen wieder.

Interaktiver Build-Vergleich: Spielregeln
1. Runde: Wir stellen die drei selben kurzen Fragen an je einen Vertreter von Maven, Ant und Gradle.

2. Runde: Geben Sie über die JAXenter-Kommentarfunktion Ihr Feedback zurück an die Build-Experten!

3. Runde: Die Build-Experten reagieren auf Ihr Feedback und beantworten Ihre Fragen!

Darüberhinaus können Sie uns Ihre Erfahrungen mit den Buildtools auch anhand der folgenden Fragen mitteilen:

  1. Mit welchen Build-Systemen haben Sie in Ihrer Praxis bereits Erfahrungen gesammelt?
  2. Wo sehen Sie die Stärken Ihres bevorzugten Build-Systems?
  3. Wo sehen Sie Schwachpunkte der anderen Build-Systeme?
  4. Welche Fragen haben Sie an Matthew McCullough (zu Maven), Hans Dockter (zu Gradle) und Jan Matèrne (zu ANT)?

Beantworten Sie die Fragen als Kommentar zu diesem Artikel oder senden Sie Ihren Erfahrungsbericht direkt an die JAXenter-Redaktion!

Wir sind gespannt auf Ihr Feedback!

andere Artikel dieser Serie

Kommentare

Gravatar RPR 06.07.2010
um 09:09 Uhr
Werden die Fragen eigentlich hier auch beantwortet?

Für Ant kann ich sie Herrn Stäuble schon beantworten - un ich bin sicher, er hätte das auch können ;-)

- Ja, ANT hat eine Zukunft, weil es ein allgemeines Build-Tool ist und nach wie vor von den meisten Projekten eingesetzt wird, weil sie es am geeignetsten finden.
- Endpunkt: Im Gegensatz zu Maven, das zwischen den 3 Releases praktisch alles umreissen musste, ist Ant mature. Das verwechselt nur ein "Schelm" mit Endpunkt und das wissen Sie auch. Die Entwicklung von Ant findet v.a. in der Umgebung statt, z.B. bei Ivy. Ist doch schön, einen stabilen Kern zu haben, auf den man mit vielen Projekten aussen rum aufbauen kann, und nicht alles wie bei Maven in den Kern selbst legen muss, der dann alle 3 Jahre komplett umgerissen werden muss, weil er es wieder nicht gepackt hat.
- Änderungen: Wird es in Ant selbst wohl (hoffentlich) kaum noch geben, nehme ich an - es ist die Peripherie die hier auf der stabilen Basis weiter wächst.
- Warum ein neues Projekt auf Ant setzen sollte? Weil ich keine (bessere) Alternative sehe zu Ant und Ivy. Ich könnte jetzt wieder den ganzen Roman schreiben, aber das wurde hier nun doch schon 100 mal durchgekaut, das will ich nun echt nicht noch mal wiederholen, lesen Sie halt mal was bevor Sie fragen.
Umgekehrt: Warum sollte ein Projekt Maven nutzen, wenn es doch Ant und Ivy gibt? Konventionen gibts auch hier, es ist schneller, stabiler und flexibler und zwingt v.a. nicht zu Verdrehungen und 100 leeren Ordner-Monstern so wie Maven das tut.

Maven ist halt ein Build- und Repository-Tool - Ant nur ein build-Tool. Was ist besser? Lassen Sie die Äpfel von den Birnen, Herr Stäuble.
Ich halte Maven für eine architekturelle Katastrophe, weil es beides in den Kern packen will. Siehe Linux-Tools: Ein Tool macht nur eine Aufgabe aber diese gut. Und so ist Ant: Builds, aber die gut. Keine Repositories, das macht z.B. Ivy. Wer den Vorteil nicht erkennt, ist wohl in der Tat beim Build-Management besser aufgehoben als in der Software-Entwicklung.

Und auch Maven kommt allein nicht zurecht: Es braucht Wekzeuge um Artifakte zu verwalten, ...
Aber Maven 4 hat dann hoffentlich gleich noch ein Artifactory, ein VCS und eine IDE dabei und schimpft dann auf Gradle, weil es nur ein Build- und Repository-System hat.

Im Endeffekt kommen sich aber Ant+Ivy, Maven und Gradle mittlerweile so nahe, dass die Diskussion den wirklich unsinnigen Flames um "VI versus Emacs" oder "Gnome versus KDE" gleichen.
Und: An einem ollen Build-Tool ist noch kein Pojekt gescheitert (höchstens an den Leuten, die nicht in der Lage waren, es anständig zu nutzen).
#zitieren
Gravatar Markus Stäuble 06.07.2010
um 11:17 Uhr
Danke für das Feedback.

>> Für Ant kann ich sie Herrn Stäuble schon beantworten - un ich bin sicher, er hätte das auch können
Richtig, wenn es aber schon Gelegenheit gibt kritisch zu fragen nehme ich das auch wahr

>> Maven ist halt ein Build- und Repository-Tool - Ant nur ein build-Tool. Was ist besser? Lassen Sie die Äpfel von den Birnen, Herr Stäuble.
Gut der "Obstsalat" kommt ja schon von den Machern der Tools die durch Maven mehr adressieren als den reinen Build. Und durch Ivy kommen wir doch schon wieder in die gleiche Liga.
#zitieren