在ant/nant中构建Flex项目

7
我们公司在Flex项目中经常遇到构建中断的问题。主要原因是开发人员在本地机器上进行的构建与构建机器上发生了根本性的不同。开发人员使用 FlexBuilder/eclipse 进行项目构建,而构建机器则使用命令行编译器。不可避免地,{projectname}-config.xml 和/或运行构建的批处理文件与eclipse使用的项目文件不同步,因此构建在开发人员的机器上成功,但在构建机器上失败。
我们开始编写一个实用程序将FlexBuilder的项目文件转换为 {projectname}-config.xml 文件,但它是a)未记录和b)可怕的hack。
我尝试了-dump-config开关来获取配置文件,但这有几个问题:1)生成的配置文件具有绝对路径,在我们的环境中无法工作(一些开发人员使用mac,一些使用windows机器),并且2)仅在从IDE运行时才能正常工作,因此不能构建到构建过程中。
明天,我们将讨论几个选项,但我都不太喜欢:
a)在Subversion中添加提交后事件以删除这些绝对引用,或者
b)添加预构建进程以删除绝对引用。
我无法相信我们是第一组遇到此问题的开发人员,但我在Google上找不到任何好的解决方案。其他组是如何处理此问题的?
2个回答

1
我发现使用Ant和Flexbuilder的一个未记录的要求是在您的Ant脚本中设置变量FLEX_HOME。通常在build.xml中,应该有以下内容:
<!– Module properties –>
<property environment=”env”/>
<property name=”build.dir” value=”build”/>
<property name=”swf.name” value=”MyProjectSwf”/>
<property name=”root.mxml” value=”Main.mxml”/>
<property name=”locale” value=”en_US”/>
<property name=”FLEX_HOME” value=”${env.FLEX_HOME}”/>

这可能看起来很麻烦,但如果您的开发人员使用多个平台,那么这是一种更合理的方法来获得跨平台和环境的一致性。

希望对您有所帮助。


1

虽然这不是解决您特定问题的方法,但可以使用持续集成服务器来解决问题。

使用类似Cruise Control的工具,您可以在每次有人提交源代码时启动自动构建。如果由于任何原因(包括环境不一致)构建失败,则由破坏构建的开发人员负责修复。您可以配置它以各种方式在失败/成功时发送电子邮件通知。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接