Java Build-Tools - Erfahrungen und Eindrücke zu Maven und Ant

Aus aktuellen Anlass - siehe Thread "Ansätze zu Projekt-Strukturen" bei der JugHH - habe ich mal ein paar Eindrücke, die ich so vom Einsatz der beiden beliebtesten Build-Tools habe, notiert.

Sicherlich unvollständig und subjektiv - aber teilweise von Team-Kollegen aus Projekten bestätigt.
Und klar, es gibt für alles eine (mehr oder weniger aufwändige) Abhilfe - aber wieso kein Tool, das "out of the Box" nur die positiven Eigenschaften der beiden Dinger verbindet?

Ich bin an Kommentaren interessiert, an den Erfahrungen anderer, und kann auf Nachfrage natürlich einzelne Punkte erläutern...

Ant:

  • Guter und stabiler IDE Support(insbesondere Eclipse)
  • relativ leicht erweiterbar durch Python-Scripting (kann nervig werden und schwer zu debuggen) und Schreiben eigener Tasks (ist dann ein bisschen mehr Aufwand
  • Eigentlich alle Funktionen gut und umfangreich dokumentiert. Frei und online, und als Printversion.
  • Erfordert keine weitere Infrastruktur
  • Die genutzten Bibliotheken sind ganz klar und fest definiert - dafür hat man, wenn man in einer Firma mehrere Java-Projekte hat, halt auch viele Redundanzen und Binaries im SCM.
  • Volle Flexibilität - man muss aber auch alles selbst machen - man kann natürlich Vorlagen entwickeln und nutzen - aber die kommen auch nicht von selbst
  • Von Projekt zu Projekt unterschiedlich aussehende Projektverzeichnisse
  • Ist aber auch eine Frage der Disziplin. Und Evolution und Weiterentwicklung will man ja auch nicht verbieten.
  • Build-Files werden sehr komplex - man kann sie aber auch gut strukturieren und regelmäßiges Refactoring ansetzen
Maven:
  • Eclipse Support eher so la la - andereseits - was geht, das geht. Aber das Maven 1 Plugin war irgendwie besser, hatte auch Eingabehilfen für die ganzen Projekteigenschaften, die man jetzt alle im XML händisch eingeben muss. Das von vielen genutzte MyEclipse unterstützt es (bis zum letzten mal, als ich reingeschaut habe) auch noch nicht
  • Saubere Projektstruktur vorgegeben - aber: wo ist mein "doc" Verzeichnis mit README.txt und anderen wichtigen, schnell zugreifbaren Infos in Plaintext - stattdessen gibt's src/site/resources/...
    Und woher wissen die Maven Entwickler, was für mich das Beste ist?
  • Viele wichtige Funkionen für den Build-Zyklus mitgeliefert - will man diese aber anpassen, geht dies teilweise nur, wenn der Plugin-Entwickler das vorgesehen hat - wenn nicht, muss man schon etwas tiefer einsteigen.
  • Doku für das Tool selbst und die Plugins nicht so umfangreich und gut wie bei Ant. Und: gibt es ein(gutes und aktuelles) Buch in Druckform? Wie viele davon?
  • Will man genau kontrollieren, welche Bibliotheken man für das ganze Projekt nutzt (zum Beispiel verhindern, irgendwelche Snapshots und Alpha-Versionen zu nutzen), hat man einiges zu tun.
  • Auschecken und sofort geht nur, wenn man Internet hat, oder einen kompletten Mirror aller wichtigen/genutzten Maven Repositories(und auch oder gerade bei großen Firmen gibt es manchmal Probleme, "mal eben" einige GB und einen Server für einen Mirror zu bekommen.

"Fazit"(falls man es so nennen kann): optimal ist irgendwie keines von beiden, und daher wird mir beim nächsten Mal, wenn ich mich für eines entscheiden muss beim Aufsetzen eines neuen Projektes, die Entscheidung nicht gerade leicht fallen.

Was ist mit
Hat sich die mal jemand angeschaut?