In diesem Jahr haben wir uns ja bereits mit Groovy und Grails beschäftigt, was liegt also näherer, ein weiteres Familienmitglied vorzustellen. Mit Ant hat sich fast jeder schon einmal herumschlagen müssen, mit maven wurde der Buildprozess dann gesellschaftsfähig. Doch die Entwicklung bleibt nicht stehen, die Ansprüche an Komfort und Effizienz wachsen und so war die Zeit reif für Gradle!

Die Firma Gradleware beschäftigt mit Hans Dockter quasi den Erfinder, was bedeutet, dass wir heute Informationen aus erster Hand von Rene Gröschke (gleiche Firma, gleiche Quelle) erhalten werden.

René Gröschke erklärt Gradle

Ein kurzer historischer Abriss von Ant zu maven um zur Motivation für Gradle zu kommen. Eine Stärke ist ganz klar, dass sowohl Ant wie auch maven als 'first class citizens' eingebunden sind. Die Qualität wird mit über 7000 (!) Tests gewährleistet. Wie schon beim JFS erwähnt ist Spring inzwischen einer von vielen prominenten Nutzern.

Der entscheidende Layer ist eine Groovy DSL. Die Files werden auch in Groovy Syntax geschrieben. Ein erstes einfaches build File mit Java Plugin und Zugriff auf ein maven Repository und einer Abhängigkeit zu JUnit. Das wichtigste Konzept sind Tasks! Gradle läuft stets in zwei Phasen ab. Zuerst wird ein Graph gebildet, der im zweiten Schritt ausgeführt wird. Weiterhin gibt es sehr leistungsfähige Plugins (Scala, Jetty,...), die zum Teil mit ausgeliefert werden, aber auch einfach selber erstellt werden können, um größere Aufgaben auszulagern. Caching und Versionierung fehlen derzeit noch. Nun die Demo...

IDE Unterstützung

Gradle generiert die notwendigen Files für Eclipse und IntelliJ, um das Projekt dor nahtlos starten zu können. Eigenen Tasks können recht einfach erstellt werden, wie jetzt an einer neuen Convertertask gezeigt wird. Die Annäherung kann zuerst ganz intuitiv erfolgen, während man später dann die Task auch optimieren kann. Eine weitere Stärke ist die Integration des Groovy Ant-Builders, um Ant-Tasks auch direkt auszuführen.

Abschließend gibt es nun ein paar Worte zu den Multi-Project-Builds. für mich eines der Top-Feature von Gradle. Zukünftig sollen Tasks parallel abgearbeitet und die Dependencies besser moduliert werden. Beispiele dafür gibt es bereits im aktuellen Releasekandidat.

Links:

  • http://www.gradle.org
  • github.com/gradle/gradle
  • forums.gradle.org
  • gradleware.com/resources