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 上找不到任何好的解决方案。其他团体是如何处理这个问题的?

4

2 回答 2

1

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

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

于 2008-09-15T16:18:18.273 回答
1

我发现将 ant 与 Flexbuilder 一起使用的未记录要求之一是在您的 ant 脚本中设置变量 FLEX_HOME。通常在 build.xml 中有以下内容:

<!– Module properties –&gt;
<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}”/>

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

高温高压

于 2008-09-13T15:28:00.440 回答