Flash Builder 提供 Ant 任务 <fb.exportReleaseBuild>。使用该任务可以执行命令行构建,使开发人员个人的构建设置与每晚构建同步。也可以在自定义脚本中使用 <mxmlc> 任务来执行每晚构建。
<fb.exportReleaseBuild> 任务
使用 <fb.exportReleaseBuild> 任务可以确保每晚构建设置与开发人员在每日构建时所用的设置精确匹配。
例如,如果开发人员更改了 Flex 项目的库路径,则新的库路径会写入 Flash Builder 项目中。当每晚构建机运行 <fb.exportReleaseBuild> 时,该任务会加载 Flash Builder 项目及其所有设置。
-
自动编译关联的库项目
-
将 JPEG 等资源复制到输出目录下
-
根据编译结果(如宽度和高度)复制 HTML 模板(包括宏替换)
<mxmlc> 任务
如果您编写了使用 <mxmlc> 任务的自定义脚本(如 Ant 脚本),则无需在构建机上安装 Flash Builder。但构建机上必须提供 Flex SDK。因此,构建机可以基于 Linux 平台。
但该方法的不足之处是,您要同步两组构建设置,一组在 Flash Builder 中,开发人员在每日构建时使用;另一组在每晚构建机上。
<fb.exportReleaseBuild> 用法
-
在构建机上安装 Flash Builder。
-
以 fb.exportReleaseBuild 为目标编写 build.xml。例如:
<?xml version="1.0"?> <project default="main"> <target name="main"> <fb.exportReleaseBuild project="MyProject" /> </target> </project>
build.xml 指定使用项目文件中保存的设置运行 Flex 项目的命令行构建。有关可用参数的详细信息,请参阅fb.exportReleaseBuild 任务的参数。
-
创建可让 Eclipse 查找构建文件并执行其目标的每晚构建脚本。
以下示例指定 build.xml 为构建文件,该文件将执行 MyTarget。
如果每晚构建脚本位于 Macintosh 平台上,则可以运行以下脚本:
WORKSPACE="$HOME/Documents/Adobe Flash Builder" # works with either FlashBuilder.app or Eclipse.app "/Applications/Adobe Flash Builder/FlashBuilder.app/Contents/MacOS/FlashBuilder" \ --launcher.suppressErrors \ -noSplash \ -application org.eclipse.ant.core.antRunner \ -data "$WORKSPACE" \ -file "$(pwd)/build.xml" MyTarget
如果每晚构建位于 Windows 平台上,则可以运行以下批处理文件:
set WORKSPACE=%HOMEPATH%\Adobe Flash Builder REM works with either FlashBuilderC.exe or eclipsec.exe "C:\Program Files\Adobe\Adobe Flash Builder\FlashBuilderC.exe" ^ --launcher.suppressErrors ^ -noSplash ^ -application org.eclipse.ant.core.antRunner ^ -data "%WORKSPACE%" ^ -file "%cd%\build.xml" MyTarget
fb.running Ant 属性
运行 Flash Builder 时,fb.running Ant 属性的值为 true。运行 Flash Builder 中的脚本时,可以使用该属性。例如:
<target name="myFlashBuilderTasks" if="fb.running"> <fb.exportReleaseBuild ... /> </target>
Eclipse Ant 任务
-
eclipse.incrementalBuild
-
elicpse.refreshLocal
-
eclipse.convertpath
fb.exportReleaseBuild 任务的参数
属性 | 说明 | 是否必需? | 默认值 |
---|---|---|---|
project | 要构建的项目。在 Flash Builder 工作空间中指定项目名称,但不指定路径。例如:“MyFlexProject”。 | 是 | 无 |
application | 要编译的应用程序名称。可以仅指定应用程序名称,而不指定路径或扩展名(例如:app1)。为了避免命名模棱两可,可以指定相对于项目根文件夹的完整路径(例如:src/app1.mxml)。要编译所有应用程序,请指定“*”或省略此属性。针对 AIR 项目运行时,仅可以指定一个应用程序。不允许使用值“*”。 | 否 | 项目的默认应用程序。 |
publishsource | 不管是否发布应用程序的源代码,都允许用户通过上下文菜单“查看源代码”来查看源文件。 | 否 | false |
locale | 指定区域设置,如 en-US。此值通过编译器的 -locale 标志传递给编译器。如果指定了此值,则该值会覆盖 Flash Builder 的“附加的编译器参数”字段中指定的任何区域设置。 | 否 | 无 |
destdir | 输出文件夹。文件夹可以为相对路径或绝对路径。如果指定的是相对路径,则其将相对于项目的根文件夹。如果编译的是 AIR 项目,则该文件夹是临时目录,创建 .air 文件后会被删除。 | 否 | bin-release |
failonerror | 指明是否是编译错误导致构建失败。 | 否 | true |
verbose | <fb.exportReleaseBuild> 任务输出其它信息。例如,它可列出打包为 AIR 文件的文件,以及此过程中每个步骤所花的时间。 | 否 | false |
package | 仅适用于 AIR 项目:指明是否将结果打包为 .air 或 .airi 文件。如果为 true,则将创建 .air 或 .airi 文件,同时删除临时输出目录(默认值为 bin-release,由 destdir 属性设置)。 如果为 false,则不会创建 .air 或 .airi 文件,且编译后中间目录将保持不变。 | 否 | true |
destfile | 仅适用于 AIR 项目:要创建的 .air 或 .airi 文件的文件名。 可以指定相对路径或绝对路径。如果指定的是相对路径,则该路径将相对于项目的根文件夹。 | 否 | appname.air 或 appname.airi(在项目根文件夹下) |
certificate | 仅适用于 AIR 项目:用于对 AIR 文件进行签名的证书路径。 | 否 | 如果省略该参数,则会生成未签名的 .airi 文件,以后再对该文件进行签名。 |
password | 仅适用于 AIR 项目:用于对 AIR 文件进行签名的证书密码。如果省略该参数,则会出现一条错误消息。 警告:指定文字值作为密码可能会降低安全性。 | 否 | 无 |
timestamp | 仅适用于 AIR 项目:指明生成的 AIR 文件是否包括时间戳。 | 否 | false |
“导出发行版”向导
运行“导出发行版”向导(“项目”>“导出发行版”)时,在向导中所作的设置将保存在 .actionScriptProperties 文件中。使用 fb.exportReleaseBuild 任务的命令行构建将使用向导中的设置。“导出发行版”向导会保存以下设置:
-
查看源代码
将保存您为“查看源代码”指定的源文件。如果为 fb.exportReleaseBuild 指定了 publishsource 参数,则向导会将这些文件归为可查看的源文件。
重要说明: 对于服务器项目,可以在导出源文件时选择服务文件夹。导出用于实现服务的文件具有安全含义。这些文件可以提供对您的数据库的访问权限,包括用户名和密码。请参阅 导出应用程序发行版的源文件。 -
对于 AIR 项目,在向导中指定的要包括在 AIR 或 AIRI 文件中的任何其它输出文件。
在 Linux 和其它平台上运行命令行构建
仅 Windows 和 Mac 平台支持 <fb.exportReleaseBuild> 任务。
但如果您编写的构建脚本适用于其它平台,则可对 mxmlc 或 compc 编译器使用 -dump-config 选项,以将编译器配置设置写入文件中。接着可以使用 -load-config 选项来读取配置选项。
根据需要修改文件中的配置设置。例如,如果每晚构建应执行发行版,可将 <debug>true</debug> 更改为 <debug>false</debug>。
使用 Flash Builder 编译器设置运行命令行构建
-
在 Flash Builder 中,选择“项目”>“属性”>“Flex 编译器”。
-
在“附加的编译器参数”中,指定以下参数:
-dump-config pathname,其中 pathname 指定了系统上指向某个文件的绝对路径。
-
在“属性”窗口中应用更改。
编译器设置会写入指定的文件中。确定已写入文件后,删除 -dump-config 参数。
-
根据需要修改配置设置。
-
在构建脚本中运行编译器,使它包含保存的编译器设置。
mxmlc -load-config pathname