Letzte Woche (21.04.08 - 25.04.08) hat die Konferenzsaison für mich wieder richtig begonnen und ich war auf der JAX 2008 in Wiesbaden.
Das erste Thema, dem ich mich als Sprecher gewidmet habe, war das Buildsystem buildr. Dieses verfolge ich bereits schon länger.
Buildsysteme im Wandel
Diese Frage ist natürlich berechtigt. Um das zu beantworten, muss zuvor ein Schritt zurück in der Historie gegangen werden. Für Javaprojekte haben wir einmal die schon in die Jahre gekommene fleißige Ameise (Apache ANT) und den inoffiziellen Nachfolger Maven. Vor allem das Dependencymanagement hat ANT gegenüber Maven etwas ins Hintertreffen kommen lassen, wobei dies durch Ivy wieder ausgemerzt wurde. Maven hat den Javaprojekten aber mehr als nur ein funktionierendes Dependencymanagement gebracht, u.a. eine vorgegebene Projektstruktur und aufbauend darauf viele vorbereitete Goals. Verloren hat man aber sicherlich etwas an Flexibilität, auch wenn man sich diese durch Einbettung von ANT (welch Ironie) zurückholen kann. Maven wurde von der Apache Software Foundation (ASF) massiv nach vorne gebracht und viele Projekte im OpenSource Umfeld setzen diese auch ein.
Nun hat die ASF als erstes Ruby Projekt ein eigenes Buildsystem herausgebracht, nämlich buildr (buildr.rubyforge.org). Um dem noch die Krone aufzusetzen, setzt buildr auf die gleiche Projektstruktur wie Maven auf. Auch ein erstes Toplevelprojekt (ODE) wurde bereits auf buildr umgestellt.
buildr basiert auf dem Buildsystem RAKE (Ruby Make) und verwendet eine auf das Bauen von Javaprojekten angepasste DSL (Domain Specific Language). Neben vielen vorbereiteten Tasks ist es möglich direkt Ruby zu verwenden.
Ergebnis
Mit buildr bekommt man wieder einen Teil zurück, den man mit ANT verloren hat.
Wer bereits bei Maven ist, wird wahrscheinlich keinen Grund finden zu wechseln. Aber für Wechsler - auch aus anderen Sprachen (z.B. hin zu JRuby) - macht es sicherlich Sinn, sich dieses System anzusehen. Einfache Projekte bekommt man sehr schnell mit buildr gebaut. Probieren Sie es aus!



