Dienstag, 12. November 2013

Bessere Ant Scripte schreiben

Ant Scripte (aka Build Files) haben die Neigung komplex zu werden. Damit einher gehen geringere Lesbarkeit und Wartbarkeit der Scripte. Dieses Phänomen betrifft neben Ant auch andere Build-Werkzeuge wie Rake oder Gradel. Ein Ausweg ist das Wechsel zu Maven, das mit seinem "Convention over Configuration" Ansatz dieses Problem umgeht. Leider müssen dann oft bestehende Build-Prozesse massiv geändert werden, damit sie den Maven Konventionen entsprechen. Dieser Aufwand wird aus verschiedenen Gründen von vielen Entwicklern gescheut. Welche Gründe das sind würde diesen Artikel sprengen und ist ein neues Thema.
Ein zweiter Weg ist es die Ant Scripte besser, lesbarer zu gestalten. Dabei helfen folgende Dinge:

  1. Ersetzen von Ant Tasks durch Ant Makros
  2. Benutzung von FAIL
  3. Auslagen von Funktionen in andere Ant Scripte oder in externe Scripte (BASH) oder Programme
Das Ersetzen von Task durch Makros hat den Vorteil, dass man die zu verarbeitenden Properties als Parameter dem Makro übergeben kann. Dadurch wird sichtbar, was vorher im Verborgenen war. Zusätzlich lässt sich eine einfache Verarbeitung (Default Werte) bzw. Prüfung der Parameter durchführen.

Hier ein Beispiel für ein kleines Makro, welches ein Echo mit Timestamp zur Verfügung stellt:

 <macrodef name="echot" >
  <text name="text"/>
  <attribute name="level" default="warning"/>
  <sequential>
   <tstamp>
    <format property="current.time" pattern="yyyy-MM-dd HH:mm:ss" />
   </tstamp>
   <echo level="@{level}" message="${current.time} @{text}" />
  </sequential>
 </macrodef>

Links zum Thema:

Keine Kommentare:

Kommentar veröffentlichen