AS3编译时间常量在ant脚本中设置时会出错

时间:2012-06-27 22:31:51

标签: actionscript-3 flex ant

我有一个使用编译时常量的AS3项目。这在FDT中运行良好,并添加了编译器参数,如:

-define=CONFIG::buildver,"0.1"

但是当使用ant脚本构建时尝试复制它:

<project name="ProjectName" default="compileMain" basedir=".">
<property file="build.properties" />    
<target name="compileMain">
    <exec executable="${mxmlc}">

        <arg line='-define=CONFIG::testvar,"0.1"' />
        <arg line="-source-path '${classesdir}'" />
        <arg line="-library-path '${flex3libsdir}'" />
        <arg line="-output '${bindir}/TestSwf.swf'" />
        <arg line="-file-specs '${classesdir}/Test_Main.as'" />

    </exec>
</target>   

我得到“错误:配置值的初始化程序必须是编译时常量。”

我尝试过使用-define + = CONFIG,但得到相同的响应。

有编译时常数和ant经验的人有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我这样使用它:

<define name="CONFIG::LOGGING" value="false" />

但在<compc>所以不确定它在exec中是否有效...但你可以尝试;)

答案 1 :(得分:1)

我正在使用arg value属性和每行的交替键/值。不确定这是否是最佳实践(对我来说似乎相当粗制滥饰)但是我确实记得在几年前设置我的Ant脚本时尝试了一堆不同的选项,这就是卡住了。

由于“不是破坏,不修复”的原则我已经离开它并且已经使用它已经两年多了。

使用你的样本它看起来像这样:

<project name="ProjectName" default="compileMain" basedir=".">
<property file="build.properties" />    
<target name="compileMain">
    <exec executable="${mxmlc}">

    <arg value="-define=CONFIG::testvar,0.1"/>
    <arg value="-source-path"/>
    <arg value="${classesdir}"/>
    <arg value="-library-path"/>
    <arg value="${flex3libsdir}"/>
    <arg value="-output"/>
    <arg value="${bindir}/TestSwf.swf"/>
    <arg valye="-file-specs"/>
    <arg value="${classesdir}/Test_Main.as"/>

    </exec>
</target>