Sonntag, 17. April 2011

Continuous Integration mit Flex/Actionscript Teil 2: Ant

Ersteinmal muss man Ant auf seinem System installieren. Dazu sind folgende Schritte nötig:
  1.  Ant herunterladen von http://ant.apache.org/bindownload.cgi und entpacken (an einen beliebigen Ort)
  2.  Java muss installiert sein. Eventuell also Java installieren.
  3.  Enviroment Variablen setzen. Bei Windows über System, Umgebungsvariablen und bei X-Systemen über das editieren der .bash_profile im home folder. Es muss das JAVA_HOME zur Java Installation zeigen, ANT_HOME dorthin, wo Ant enpackt wurde und  ${ANT_HOME}/bin (Unix) bzw.  %ANT_HOME%/bin (Win) sollten zum PATH hinzugefügt werden.
Zum Beispiel unter Linux:

vi /home/milena/.bash_profile
export $ANT_HOME=/home/milena/apps/ant
export PATH=$ANT_HOME/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.20/



Wenn ihr nun in der Console ant -version eingebt, solltet ihr eine sinnvolle Meldung mit einer Versionsnummer erhalten. Ant geht also schon mal, nun muss nur noch das Projekt konfiguriert werden.
Adobe hat beim Flex SDK schon entsprechende AntTasks mitgeliefert. Und man kann reine ActionScript Projekte ebenfalls mit dem Flex SDK kompilieren.
Für Ant benutzt man als Konfiguration ein build file (build.xml) indem steht was zu kompilieren ist und was es sonst noch für Tasks für Ant zu machen gibt. Außerdem benutzt man noch ein properties File das System spezifisch ist und eure Pfade enthält. Ihr könnt also in eurem Projekt auf höchster Ebene eine Datei namens build.properties anlegen. Dort sollte mindestens das FLEX_HOME definiert sein, was dann so aussieht:

FLEX_HOME=C:/Program Files/Adobe/Flash Builder Burrito/sdks/4.1

Hilfreich ist auch das src Directory

SRC_DIR =${basedir}/src 

Es können auch noch Pfade zum Folder wo die Libraries liegen angegeben werden usw. Es ist eure Entscheidung, ob ihr die Pfade auslagert oder in der build.xml direkt angebt.

Nun kommt auch schon das Build File. Legt eine Datei namens build.xml auf der gleichen Ebene wie die build.properties an. Die Angaben beziehen sich auf mein Sample bei GitHub.
Gehen wir die Teile der build.xml durch.
Als erstes sagt ihr Ant was es als default Task ausführen soll:

<project name="Flex Ant Tasks Build Script" default="compile flex project">

Dann verweist ihr auf eure properties für die Pfade:

 <property file="build.properties"/>

Nun definiert ihr einen Task zum Aufräumen, altes Verzeichnis löschen und neu erzeugen 

 <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
  <target name="init">
   <delete dir="bin-debug"/>
   <mkdir dir="bin-debug" />
  </target>

Nun das eigentliche Kompilieren:

 <target name="compile flex project" depends="init">
  <mxmlc file="${SRC_DIR}/AntSample.mxml" output="bin-debug/AntSample.swf">
    <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
    <source-path path-element="${FLEX_HOME}/frameworks"/>
    <compiler.debug>false</compiler.debug>
   </mxmlc>
  </target>


Dann schliesst ihr das Anfangstag:

</project>


 Super! Das war es auch schon für mein Sample Projekt. Das findet ihr bei GitHub und es sollte leicht sein es auf ein eigenes kleines Projekt zu übertragen.

Keine Kommentare:

Kommentar veröffentlichen