我有一个使用编译时常量的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经验的人有什么建议吗?
答案 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>