Apache flex 在ant/nant中构建Flex项目

Apache flex 在ant/nant中构建Flex项目,apache-flex,build-process,nant,flexbuilder,Apache Flex,Build Process,Nant,Flexbuilder,我们公司在Flex项目中经常出现构建中断的问题。问题的出现主要是因为开发人员在本地机器上进行的构建与在构建机器上进行的构建有根本的不同。开发人员正在使用FlexBuilder/eclipse构建项目,构建机器正在使用命令行编译器。不可避免地,运行构建的{projectname}-config.xml和/或批处理文件与eclipse使用的项目文件不同步,因此构建在开发人员的机器上成功,但在构建机器上失败 我们开始编写一个实用程序,将FlexBuilder的项目文件转换成{projectname}-

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

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

我研究了-dump-config开关以获取配置文件,但这有两个问题:1)生成的配置文件具有绝对路径,在我们的环境中不起作用(一些开发人员使用Mac,一些windows机器),2)只有在从IDE运行时才起作用,因此无法构建到构建过程中

明天,我们将讨论两个选项,这两个选项我都不太喜欢:

a)向Subversion添加签入后事件以删除这些绝对引用,或
b)添加删除绝对引用的预构建过程


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

我发现在Flexbuilder中使用ant的一个未记录的要求是在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

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

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