Kompilieren mxml Dateien mit Ant und flex sdk
-
09-06-2019 - |
Frage
Ich bin gerade mit Flex und bin mit dem SDK (nicht Flex Builder) die ersten Schritte. Ich frage mich, was ist der beste Weg, um eine MXML-Datei von einem Ant-Build-Skript zu kompilieren.
Lösung
Die Flex SDK wird mit einem Satz von Ameise Aufgaben. Mehr Infos unter:
http://livedocs.adobe.com/ flex / 3 / html / help.html? content = anttasks_1.html
Hier ist ein Beispiel für die Erstellung Flex SWCs mit ant:
http : //www.mikechambers.com/blog/2006/05/19/example-using-ant-with-compc-to-compile-swcs/
mike Kammern
Andere Tipps
ich auf jeden Fall mit der Ameise Aufgaben gehen würde, die mit Flex enthalten sind, machen sie Ihren Build-Skript so viel sauberer. Hier ist ein Beispiel-Build-Skript, das kompiliert und dann Flex-Projekt ausführen
<?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>
Es gibt eine andere Option -. Es heißt Projekt Sprouts
Dies ist ein System gebaut mit Ruby RubyGems und Rake, die in Maven und ANT fanden viele der Funktionen bieten, aber mit einer viel sauberen Syntax und einfachen Build-Skripte.
Zum Beispiel kann der ANT-Skript oben gezeigt würde wie folgt aussehen in 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
Nach der Installation von Ruby und RubyGems, würden Sie einfach dieses Skript aufrufen mit:
rake
Um generierten Dateien zu entfernen, führen:
rake clean
Um die verfügbaren Aufgaben finden Sie unter:
rake -T
Ein weiterer großer Vorteil von Saaten, einmal installierte, ist, dass es für Projekt-, Klasse und Testgeneratoren, die bereit, jede Entwicklung Box bekommen mit ein paar einfachen Kommandozeilen-Aktionen ausgeführt werden.
# 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
Wenn Sie Maven offen sind, versuchen Sie die Flex-Compiler-mojo Plugin:
http://code.google.com/p/flex-mojos/
Christiaan