我正在尝试将构建号从Hudson传递到Flex应用程序。
我在条件编译中找到了Adobe的文档(http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html),似乎应该解决它但我必须遗漏一些东西。
所以在我的ant构建文件中,我有: -
<mxmlc
file="${app.dir}/${application.name}.mxml"
output="${dist.dir}/${application.name}.swf"
context-root="${application.name}"
debug="true"
locale="${locales}"
allow-source-path-overlap="true">
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<compiler.library-path dir="${lib.dir}" append="true">
<include name="*.swc" />
</compiler.library-path>
<define name="BUILD::BuildNumber" value="'20100707.800'"/>
<source-path path-element="${src.dir}"/>
<source-path path-element="${cfg.dir}"/>
<source-path path-element="${locale.dir}" />
</mxmlc>
然后我试图用
检索public static const buildNumber:String = BUILD::BuildNumber;
然而,编译器拒绝使用:
SomeModel.as(31):col:47错误:访问未定义的属性BUILD [mxmlc] private static const _buildNumber:String = BUILD :: BuildNumber;
有什么建议吗?
答案 0 :(得分:2)
这里的其他建议的组合似乎有效。
这应该放在你的build.xml中(假设你的build.xml在此之前已经为BUILD_NUMBER分配了一个值):
<mxmlc>
...
<define name="CONFIG::build" value=""${BUILD_NUMBER}"" />
...
</mxmlc>
请注意"
没有任何引号的使用。另请注意,您可以将此语法与compc。
然后你的动作脚本代码可以是这样的:
public static const buildNumber:String = CONFIG::build;
我认为您不一定需要使用CONFIG命名空间,但它是一种流行的约定。
答案 1 :(得分:1)
答案 2 :(得分:0)
LaurynasStančikas发表评论说你应该使用"
:
使用Ant传递字符串(使用时) mxmlc任务),使用
"
。例如:
<compiler.define name="NAMES::AppName" value=""'FooBar'"" />
你试过吗?
答案 3 :(得分:0)
我刚用引号解决了javascript flashvars问题,这启发了“尝试这个”的想法:
尝试转义:
&lt; compiler.define name =“NAMES :: AppName”value =“\'FooBar \'”/&gt;