Gradle: neue Konkurrenz für Ant und Maven

Seite 2: Multiprojekt- und IDE-Unterstützung

Inhaltsverzeichnis

Mit Gradle lassen sich zudem beliebig viele Artefakte pro Projekt erstellen, was bei Maven eher umständlich zu bewerkstelligen ist. Das ermöglicht zum Beispiel die physikalische Trennung zwischen Implementierung und Schnittstelle innerhalb eines Projekts oder das Erzeugen einer zusätzlichen JAR-Datei, die nur die Quellen des Projekts enthält.

Gradle bietet ebenfalls Unterstützung für sogenannte Multi-Project Builds, also die Aufteilung des eigenen Softwareprojekts in mehrere Artefakte. Hierzu ist zunächst ein Root-Projekt anzulegen. Diesem werden anschließend die einzelnen Artefakt-Projekte als Unterprojekte zugeordnet und in der settings.gradle-Datei des Root-Projekts die azyklischen Abhängigkeiten festgelegt. Es lassen sich beliebige azyklische Abhängigkeiten zwischen den einzelnen Artefakten des Projekts in der settings.gradle-Datei definieren.

Des Weiteren ermöglicht die Ant-Integration in Gradle den Zugriff auf eine breite Basis an hochwertigen Tasks. Das nachfolgende Codeschnipsel ruft exemplarisch den Ant-Echo-Task auf.

taskhelloant {
ant.echo('Hello ' + version)
}

Darüber hinaus bietet Gradle hilfreiche und konzeptionell interessante Ansätze, zur Unterstützung des Testens und Debuggens. Die Unit-Tests laufen in einer eigenen JVM. Um Speicherproblemen bei wiederholter Ausführung von Unit-Tests zu begegnen, lässt sich der Neustart der JVM nach x Tests konfigurieren. Zusätzlich kann der Entwickler die Unit-Tests im Debug-Modus starten. Hier kann er während der Testausführung den Programmcode "debuggen":

test {
forkEvery = 42
debug = true
}

Das STS-Plug-in sich wie das bekannte Maven-Plug-in bedienen.

Gradles IDE-Unterstützung befindet sich noch im Fluss. Das Werkzeug bringt von Hause aus eine Kommandozeilenversion und eine Swing-Oberfläche mit, jedoch fehlt eine direkte Integration in Eclipse, wie das bei Ant und Maven der Fall ist. Anders sieht es bei NetBeans und der SpringSource Tool Suite (STS) aus. In diesen IDEs gibt es Unterstützung durch ein Plug-in, wobei das STS-Plug-in sich wie das bekannte Maven-Plug-in bedienen lässt (s. Abbildung). Das fehlende Eclipse-Plug-in stellt allerdings keine ernsthafte Hürde dar. Man kann sich recht einfach mit der Eclipse External Tools Configuration behelfen, die eine akzeptable Integration in Eclipse ermöglicht.

Beim Aufruf der externen Konfiguration wird der Entwickler aufgefordert, den auszuführenden Task anzugeben. Die Ausführung des Build zeigt anschließend die Eclipse-Konsole an.

Gradle hat bereits seinen festen Platz in der Open-Source-Welt gefunden. Mittlerweile wird es als Build-Werkzeug unter anderem bei Hibernate und Spring Integration eingesetzt. Nicht zuletzt durch die einfache Erweiterbarkeit, die gut lesbaren und wartbaren Build-Skripte und die gute Unterstützung für Multi-Modul-Projekte hebt sich das Tool deutlich hervor. Bei Gradle handelt es sich somit um einen aussichtsreichen Kandidaten, der die Stärken von Ant und Maven in sich vereint und deren Schwächen weitgehend beseitigt.

Halil-Cem-Gürsoy
ist als Software Architect bei der adesso AG tätig. Sein Schwerpunkt liegt vor allem auf Event-getriebene SOA-Architekturen sowie der Definition und Implementierung von Entwicklungs- und Deployment-Umgebungen für SOA-Projekte.
(ane)