Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何加快MXMLC编译速度?_Apache Flex_Ant_Mxmlc - Fatal编程技术网

Apache flex 如何加快MXMLC编译速度?

Apache flex 如何加快MXMLC编译速度?,apache-flex,ant,mxmlc,Apache Flex,Ant,Mxmlc,我正在使用ant构建我的web应用程序。我的ant脚本中有一个目标,编译大约需要8分钟。由于mxmlc从头编译所有内容并每次加载JVM,因此需要花费大量时间。有没有办法优化此任务 我正在使用FlexSDK 3.0。这是我的蚂蚁目标: <target name="compile.organic.flash" depends="setup"> <property name="WelcomeBack.swf" value="${www.dir}/swf/as3/apps/welc

我正在使用ant构建我的web应用程序。我的ant脚本中有一个目标,编译大约需要8分钟。由于
mxmlc
从头编译所有内容并每次加载JVM,因此需要花费大量时间。有没有办法优化此任务

我正在使用FlexSDK 3.0。这是我的蚂蚁目标:

<target name="compile.organic.flash" depends="setup">
  <property name="WelcomeBack.swf" value="${www.dir}/swf/as3/apps/welcome/WelcomeBack.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/app/fthb/welcome/src/WelcomeBack.as"
         output="${WelcomeBack.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         accessible="true"
         default-background-color="${swf.backgrond.color}"
         allow-source-path-overlap="true"
         compiler.strict="true">
    <default-size width="940" height="528" />
    <source-path path-element="${Welcome.path}"/>
    <source-path path-element="${AS3.classpath}"/>
  </mxmlc>

  <property name="Welcome.swf" value="${www.dir}/swf/as3/apps/welcome/Welcome.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/app/fthb/welcome/src/Welcome.as"
         output="${Welcome.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         accessible="true"
         default-background-color="${swf.backgrond.color}"
         allow-source-path-overlap="true"
         compiler.strict="true">
    <default-size width="940" height="528" />
    <source-path path-element="${Welcome.path}"/>
    <source-path path-element="${AS3.classpath}"/>
    <compiler.include-libraries dir="${AS3.component}/" >
    </compiler.include-libraries>
  </mxmlc>

  <property name="App.swf" value="${www.dir}/swf/as3/apps/App-${svnVersion}.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/app/fthb/App.as"
         output="${App.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         default-background-color="${swf.backgrond.color}"
         compiler.strict="true">
    <default-size width="300" height="300" />
    <source-path path-element="${AS3.classpath}"/>
    <compiler.include-libraries dir="${AS3.component}/" >
    </compiler.include-libraries>
  </mxmlc>

  <property name="LSOApp.swf" value="${www.dir}/swf/as3/apps/LSOApp-${svnVersion}.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/boa/fthb/LSOApp.as"
         output="${LSOApp.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         default-background-color="${swf.backgrond.color}"
         compiler.strict="true">
    <default-size width="300" height="300" />
    <source-path path-element="${AS3.classpath}"/>
    <compiler.include-libraries dir="${AS3.component}/" >
    </compiler.include-libraries>
  </mxmlc>

  <property name="CheckRates.swf" value="${www.dir}/swf/as3/apps/CheckRates-${svnVersion}.swf" />
  <mxmlc file="${CheckRates.path}/CheckRates.as"
         output="${CheckRates.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="40"
         accessible="true"
         default-background-color="${swf.backgrond.color}"
         compiler.strict="true" compiler.allow-source-path-overlap="true" >
    <default-size width="940" height="528" />
    <compiler.source-path path-element="${AS3.classpath}"/>
    <compiler.source-path path-element="${CheckRates.path}"/>
    <!--  <source-path path-element="${AS3.classpath}"/> -->
    <compiler.include-libraries dir="${AS3.classpath}">
    <include name="fl/fl.swc" />
    </compiler.include-libraries>
  </mxmlc>

  <copy file="${AS3.classpath}/com/organic/app/fthb/checkRates/js/config/check_rates_config.js" tofile="${www.dir}/swf/as3/apps/config/check_rates_config.js"/>
  <property name="PointsCalculator.swf" value="${www.dir}/swf/as3/apps/PointsCalculator-${svnVersion}.swf" />
  <property name="flash.apps.build.dir" value="${www.dir}/swf/as3/apps" />
  <compile-flash basename="PointsCalculator" srcdir="${flash.apps.src.dir}/pointsCalculator">
  </compile-flash>
  <copy todir="${flash.apps.build.dir}/config">
    <fileset dir="${flash.apps.src.dir}/pointsCalculator/config" includes="*.js"/>
  </copy>
  <copy todir="${build.dir}/www/css">
    <fileset dir="${flash.apps.src.dir}/pointsCalculator/css" includes="*.css"/>
  </copy>
  <copy todir="${build.dir}/www/swf/as3/apps/welcome/assets/swfs">
    <fileset dir="${flash.apps.src.dir}/welcome/assets/swfs" includes="*.swf"/>
  </copy>
  <copy file="${videoplayer.dir}/videoplayer.swf" tofile="${www.dir}/swf/as3/apps/videoplayer.swf" />
</target>

使用。从该链接的第一段开始

fcsh(Flex编译器Shell)实用程序提供了一个Shell环境 用于编译Flex应用程序、模块和组件 图书馆。它的工作原理与mxmlc和compc命令行非常相似 编译器,但它的编译速度比mxmlc和compc快 命令行编译器。一个原因是把所有的东西都藏起来 在内存方面,fcsh消除了启动JVM和加载JVM的开销 编译器类。另一个原因是编译结果(用于 例如,类型信息)可以保存在内存中以备后续使用 汇编


我们发现减慢编译器速度的主要是链接资产。我们制作了一个库项目swf,它只用于除字体以外的资产(图像、swf等),而且效果很好


从maven开始,我们将在2分钟内完成一个大型项目建设。

也许您可以尝试使用Flex 4.6编译器。我想它应该可以很好地编译你的Flex3项目,但是速度更快。你是说将我的FlexSDK更新到4.6并保留相同的构建文件?有没有另一种方法可以在不升级到Flex 4.6的情况下修改构建文件?您不必“升级”它:您只需将不同的版本放在一起。是否可以让ant只使用Flex SDK 4.6进行编译。使用Flex SDK 4.6需要我对代码库进行更改,我不这么认为。这就是我要尝试的:将我的ANT taskdef指向Flex 4.6 ANT任务,而不是3.0的任务。现在,您的构建脚本应该使用该版本中的mxmlc和compc,但我们必须通过添加
-compatibility version=3.0.0
标志(cf.)来告诉它向后兼容。让我知道它是否有效。那是一个外壳;不能从ANT使用fcsh。mxmlc在每次编译flex sdk时都会检查它,所以我只想知道是否有办法确保它不会每次都构建sdk?@RIAstar ANT有一个fcsh,但我需要为此编写另一个构建脚本,我目前有5个构建脚本正在运行,所以我不确定是否会走这条路