Flex Builder中的后构建操作

6
我该怎么在Flex Builder中添加构建后操作呢?例如,我想让我的构建程序像往常一样从bin文件夹中执行,但我也希望最终的SWF文件自动复制到另一个文件夹中(我不想再自己手动复制了)。谢谢!
7个回答

4

我知道这篇文章已经有答案了,但我发现还有一种更简单的方法。虽然Ant解决方案可能是正确的选择,但对于我的小项目,我不想去研究Ant。我真正想要的只是将我的html文件和swf文件放在不同的目录中。我想这太过苛求了。

由于我正在Windows上构建,所以我创建了一个简单的批处理文件来执行我的后置构建步骤(主要是一些移动命令)。然后,在Flex中使用Windows cmd.exe创建了一个新的构建器。我只需告诉它使用/C选项调用批处理文件即可。它完美地工作,并且设置非常简单。我尝试添加屏幕截图,但我想我对该网站还不熟悉。


3

您可以使用外部程序扩展或替换Flex Builder 3使用的构建器-ant是一个不错的选择。

如果您运行“Flex Builder 3独立版”(这是一个最小化的Eclipse版本+Flex builder插件),而不是标准Eclipse中的Flex builder插件,则首先需要安装ant支持。我没有找到单独打包的ant,因此我只是从帮助/软件更新中选择了Java构建环境。

现在,您可以转到项目属性(右键单击项目,属性)并选择构建器。您会注意到默认情况下有一个Flex Builder,您无法删除也无法更改。但是,您可以取消选择它,并添加其他构建器。

因此,在您的情况下:"添加"新构建器,ant构建器,选择一个build.xml(可以命名为不同的名称),最好从您的项目文件夹中选择,并设置正确的目标。这将在运行您的ant任务之前或之后继续使用内部IDE构建器。屏幕上的排序将是构建顺序,您可以使用箭头按钮进行更改。

我使用这个方法将所需的库复制到我的/lib文件夹中,使用带有Eclipse集成错误消息的IDE构建(纯基于ant的命令行构建会忽略此错误消息)编译Flex源代码,然后将结果复制到一个公共部署目录,并在此过程中重命名包装html文件。
有关如何编写ant文件的详细信息,请参阅ant文档

这是最佳解决方案,您不必复制默认构建器。Ant比内置编译器明显慢。此外,使用此方法,您不必使用Ant,只需指定一个带有几个简单命令的BAT文件即可运行。 - davr

1

我也建议使用ant。

我在这里发布了一篇关于如何为flexbuilder设置ant的大型文章http://dispatchevent.org/mims/ant-for-flex-part-1/,我认为在我的构建脚本中甚至有一个示例,在编译后将文件从一个位置复制到另一个位置。

祝你好运!


因为通过外部调用Ant来构建项目是一种可怕的替代方案,无法与Flex/Flash Builder内置的构建系统相媲美。尽管内置的构建系统可能很糟糕、可怕和愚蠢,但至少在只有一个文件发生更改时,它不需要花费15秒钟来构建整个项目。 - David Wolever

1

您需要创建一个自定义构建脚本。由于某种原因,包含的默认“builder”无法通过界面进行编辑,因此您需要复制其大部分功能。幸运的是(或者也许不幸),Flex Builder使用Apache Ant作为其构建脚本,因此这可能是一种熟悉的方法。

要创建自定义构建脚本:

  1. 在Flex Navigator视图中,选择一个项目,然后右键单击(在Macintosh上按Control键单击)以显示上下文菜单,然后选择属性。
  2. 选择Builders属性页面。如果您正在使用其他Eclipse插件,则可能会列出多个构建器。Flex Builder提供了一个名为Flex的构建器,您无法修改它。
  3. 选择新建。
  4. 在选择配置类型对话框中,选择适当的配置类型。Flex Builder支持程序类型。选择它并单击“确定”继续。从新的构建器属性页面,您可以定义构建器属性并引用Ant脚本(一个XML文件)。
  5. 单击“确定”将其应用于项目。

Flex Builder基于Eclipse 3.1,因此文档中有关该版本的Ant集成相关内容也适用于此处。

注意:首先必须在Flex Builder中启用Ant支持。我通常使用Flex Builder作为插件,而不是独立版本,独立版本默认情况下不包含它。这里有一个关于如何做到这一点的教程


当我尝试执行XML文件时,提示无法执行。在阅读Eclipse文档时,看到配置类型必须设置为Apache Ant,但在Flex Builder中并不可用...有什么想法吗? - Steve Middleton
我使用的Eclipse文档页面是:http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.user/gettingStarted/qs-81_basics.htm - Steve Middleton
成功解决了这个问题,但每次都会显示“BUILD FAILED”,除此之外没有更多的错误信息……当我通过命令行运行ant脚本时,它可以正常工作…… - Steve Middleton

0

这可能不是最优雅的解决方案,但它可以在Linux上运行。

创建一个每分钟执行的cron任务。

使用带有"-u"选项的cp命令。 来自"man cp"。

-u, --update
          copy  only  when  the  SOURCE file is newer than the destination
          file or when the destination file is missing

在 crontab -e 中添加。
* * * * * cp -u /path/to/bin-debug/*.swf /path/to/destination/

如果想要更优雅的解决方案 - Ant 是一个不错的选择。


0

Steve,

这里是有关于后构建脚本的更多细节。它将是一个简单的批处理文件。例如,将以下行添加到一个简单的文本文件postbuild.bat中(名称无关紧要)。

copy bin/*.* 'someother location'

这将复制bin文件夹中的所有内容到另一个文件夹,只需更改“某个其他位置”即可。


0

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