Compilando archivos mxml con sdk ant y flex
(4)
Estoy empezando con flex y estoy usando SDK (no Flex Builder). Me preguntaba cuál es la mejor manera de compilar un archivo mxml a partir de un script de construcción ant.
El Flex SDK se envía con un conjunto de tareas ant. Más información en:
http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_1.html
Aquí hay un ejemplo de cómo compilar SWC Flex con hormiga:
http://www.mikechambers.com/blog/2006/05/19/example-using-ant-with-compc-to-compile-swcs/
cámaras de micrófono
Si estás abierto a Maven, prueba el plugin flex-compiler-mojo:
http://code.google.com/p/flex-mojos/
Christiaan
Definitivamente iría con las tareas ant que se incluyen con Flex, hacen que tu script de construcción sea mucho más limpio. Aquí hay un script de compilación de muestra que compilará y luego ejecutará su proyecto de flex
<?xml version="1.0"?>
<project name="flexapptest" default="buildAndRun" basedir=".">
<!--
make sure this jar file is in the ant lib directory
classpath="${ANT_HOME}/lib/flexTasks.jar"
-->
<taskdef resource="flexTasks.tasks" />
<property name="appname" value="flexapptest"/>
<property name="appname_main" value="Flexapptest"/>
<property name="FLEX_HOME" value="/Applications/flex_sdk_3"/>
<property name="APP_ROOT" value="."/>
<property name="swfOut" value="dist/${appname}.swf" />
<!-- point this to your local copy of the flash player -->
<property name="flash.player" location="/Applications/Adobe Flash CS3/Players/Flash Player.app" />
<target name="compile">
<mxmlc file="${APP_ROOT}/src/${appname_main}.mxml"
output="${APP_ROOT}/${swfOut}"
keep-generated-actionscript="true">
<default-size width="800" height="600" />
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<compiler.library-path dir="${APP_ROOT}/libs" append="true">
<include name="*.swc" />
</compiler.library-path>
</mxmlc>
</target>
<target name="buildAndRun" depends="compile">
<exec executable="open">
<arg line="-a ''${flash.player}''"/>
<arg line="${APP_ROOT}/${swfOut}" />
</exec>
</target>
<target name="clean">
<delete dir="${APP_ROOT}/src/generated"/>
<delete file="${APP_ROOT}/${swfOut}"/>
</target>
</project>
Hay otra opción: se llama Project Sprouts .
Este es un sistema creado con Ruby, RubyGems y Rake que proporciona muchas de las características que se encuentran en Maven y ANT, pero con una sintaxis mucho más clara y scripts de compilación más simples.
Por ejemplo, el script ANT que se muestra arriba se vería así en Sprouts:
require ''rubygems''
require ''sprout''
desc ''Compile and run the SWF''
flashplayer :run => ''bin/SomeProject.swf''
mxmlc ''bin/SomeProject.swf'' do |t|
t.input = ''src/SomeProject.as''
t.default_size = ''800 600''
t.default_background_color = ''#ffffff''
t.keep_generated_actionscript = true
t.library_path << ''libs''
end
task :default => :run
Después de instalar Ruby y RubyGems, simplemente debe llamar a este script con:
rake
Para eliminar los archivos generados, ejecuta:
rake clean
Para ver las tareas disponibles:
rake -T
Otro gran beneficio de Sprouts, una vez instalado, es que proporciona generadores de prueba, clase y prueba que harán que cualquier caja de desarrollo esté lista para ejecutarse con un par de simples acciones de línea de comando.
# Generate a project and cd into it:
sprout -n mxml SomeProject
cd SomeProject
# Compile and run the main debug SWF:
rake
# Generate a new class, test case and test suite:
script/generate class utils.MathUtil
# Compile and run the test harness:
rake test