2

我有一个使用编译时间常量的 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,但得到相同的响应。

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

4

2 回答 2

2

我这样使用它:

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

<compc>因此不确定它是否会在 exec 中工作......但你可以尝试;)

于 2012-06-28T07:51:55.520 回答
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> 
于 2012-06-29T17:33:22.723 回答