Mittwoch, 29. Mai 2013

Ant scripten mit JavaScript

Bei komplexen Deployments oder Aufgaben wünscht man sich in Ant ein einfache Möglichkeit mit Bedingungen (if), Schleifen (for) oder andere Programmiersprachen-Features wie Berechnungen durchzuführen. Mit aktuellem Java und Ant ist dies relativ einfach möglich. Ant unterstützt die Einbettung von Schriftsprachen wie Groovy, Ruby, Python oder auch JavaScript. Mit dem folgenden Beispiel wird ein Ant Property gelesen, ein Wert berechnet und das Ergebnis an Ant als Property zur Verfügung gestellt.
<target name="test" depends="">
    <property name="x" value="14" />
    <script language="javascript"><![CDATA[
      x = (project.getProperty("load.time") * 60 - project.getProperty("interrupt.time"))/2 - 70;
      project.setProperty("y", x)
      println("hello " + x);
    ]]>
    </script>
    <echot>Test: A: ${x}</echot>
    <echot>Test: B: ${y}</echot>
</target>
Anmerkung bei dem echot Task handelt es sich um folgendes Ant Makro ECHOT, alternativ kann einfach echo verwandt werden.