Das beste Buildtool ist dasjenige, das du dir selbst baust. So beginnt Kent R. Spillner seinen polemischen Blogeintrag "Java Build Tools: Ant vs. Maven", in dem er verschiedene Java-Build-Tools miteinander vergleicht.
Der Build-Prozess eines jeden Projektes sei dabei unterschiedlich, und Entwickler von Buildtools könnten unmöglich alle Anforderungen an einen individuellen Build-Prozess antizipieren. Im besten Falle könne ein Tool eine flexible Bibliothek wiederverwendbarer Tasks bereitstellen, die sich den eigenen Bedürfnissen anpassen lassen.
Wer sich vor der Arbeit, ein eigenes Plug-in für seinen Build-Prozesse zu schreiben, scheut, sollte sich Spillner zufolge einmal Rake anschauen, das Buildtool auf Basis von Ruby. Wem die Arbeit mit Rake nicht vergönnt sei, stehe noch vor der Alternative Ant als zweitbestes Java-Buildtool - damit sei der Vorrat an Lösungen vernünftiger Buildtools allerdings schon ausgeschöpft. Auf keinen Fall in Betracht ziehen sollte man laut Spillner den Einsatz von Maven:
So, write your own build tool, or else switch to Rake, or fight to switch to Rake, or quit and go some place where you can use Rake. And if all else fails, use Ant until you can find a new job somewhere else that uses Rake. Kent R. Spillner
That’s it! Those are the only choices I can recommend! Because you never, ever, under any circumstances want to use Maven! Kent R. Spillner
Maven-Builds endeten Spillner zufolge immer in einem "unendlichen Zyklus von Verzweiflung" und führten direkt in die "tiefsten Gefilde der Hölle".
Maven builds are an infinite cycle of despair that will slowly drag you into the deepest, darkest pits of hell (where Maven itself was forged). Kent R. Spillner
Aber ernsthaft: Maven sei eine schreckliche Ansammlung schlechter Ideen. Spillners Kritikpunkte:
- Die grundlegende pom.xml-Datei von Maven werde sich nur allzu schnell als unzureichend erweisen, und eine adäquate Anpassung sei ein schwieriges, nervenaufreibendes Unterfangen.
- Die Konfiguration von Maven sei alles andere als konsistent und benötige "The Maven Way" - der allerdings nirgends hinreichend dokumentiert sei.
- Das Dependency Management System von Maven sei völlig korrupt.
Deshalb Spillners Fazit:
Kent R. Spillner
- Maven is broken and wrong if it assumes humans never make mistakes.
- Maven is broken and wrong if it requires users to explicitly specify every version of every dependency, and every dependency’s dependencies, to reduce the likelihood of downloading incompatible artifacts.
- Maven is broken and wrong if it requires a third-party tool to prevent it connecting to the big, bad internets and automatically downloading random crap.
- Maven is broken and wrong if it thinks nothing of slowing down every build by connecting to the network and checking every dependency for any updates, and automatically downloading them.
- Maven is broken and wrong if it behaves differently on my laptop at the office and at home.
- Maven is broken and wrong if it requires an internet connection to delete a directory.
- Maven is broken and wrong.




