在ant / nant中构建Flex项目

时间:2008-09-12 00:23:24

标签: flex build-process nant flexbuilder

我们公司在我们的Flex项目中存在构建中断的问题。问题主要发生是因为开发人员在本地计算机上执行的构建与构建计算机上发生的构建根本不同。开发人员正在使用FlexBuilder/eclipse构建项目,构建机器正在使用命令行编译器。不可避免地,运行构建的{projectname}-config.xml和/或批处理文件与eclipse使用的项目文件不同步,因此构建在dev的机器上成功,但在构建机器上失败。

我们开始编写实用程序,将FlexBuilder的项目文件转换为{projectname}-config.xml文件,但它是a)未记录的,b)可怕的黑客攻击。

我查看了-dump-config开关以获取配置文件,但这有几个问题:1)生成的配置文件具有绝对路径,这在我们的环境中不起作用(一些开发人员使用macs ,某些Windows机器),2)只能在从IDE运行时正常工作,因此无法构建到构建过程中。

明天,我们将讨论几个选项,这两个选项都不是我非常喜欢的:

a)向Subversion添加帖子签到事件以删除这些绝对引用,或者
b)添加一个删除绝对引用的预构建过程。

我无法相信我们是第一批遇到此问题的开发人员,但我在Google上找不到任何好的解决方案。其他小组如何处理这个问题?

2 个答案:

答案 0 :(得分: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}”/>

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

HTH

答案 1 :(得分:1)

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

使用像Cruise Control这样的东西,每当有人提交某些内容来控制源代码时,你就可以启动自动构建。然后,如果构建因任何原因(包括环境不一致)而失败,则由打破它的开发人员来修复它。您可以将其配置为以各种方式发送有关失败/成功的电子邮件。