我正在使用 Ant 和 mxmlc 将 ActionScript 类和 MXML 编译成 swfs,同时保持 Flex Builder (Flash Builder) 项目的默认组织。我的许多 ActionScript 类都位于项目子目录中,因此我的项目按如下方式组织:
MyBigProject
-build-imports.xml
-build.xml
-bin-debug
--src
---flash
---app
----CoolWidget1.swf
---Main.swf
--test
-src
--flash
---app
----build-imports.xml
----build.xml
----CoolWidget1.as
--build-imports.xml
--build.xml
--Main.mxml
-test
此目录结构维护 Flash Builder 项目的默认目录结构,因此我可以从 Flash Builder IDE 执行按钮构建。我已将 Ant 构建 xml 添加到该项目中,因此我也可以从命令行构建。我正在尝试创建可移植的 ant 构建脚本,这些脚本需要最少的更改才能在其他项目中重用。除了派生相对路径之外,我拥有我想要的一切。
项目根目录下的 build-imports.xml 文件包含以下内容:
<project name="project.root.imports">
<dirname property="project.root.dir" file="${ant.file.project.root.imports}"/>
</project>
而子项目文件夹包含 build-imports.xml 具有以下内容:
<project name="MyBigProject.src.flash.app.imports">
<import file="../build-imports.xml" />
</project>
请注意,子项目 build-imports.xml 沿着目录层次结构向上走,直到到达根 build-imports.xml,然后我在那里设置了 project.root.dir。
然后我可以使用 ${project.root.dir}/bin-debug 来指定放置我的二进制文件的位置。我唯一的问题是,我不知道如何创建与 src 文件夹下相同的目录结构。我需要能够导出相对路径或执行一些字符串操作来创建新目录。
考虑到上述信息,我如何采用已知路径,例如:
${project.root.dir}/src/app
并派生目录路径,例如:
${project.root.dir}/bin-debug/app
我找到了一些关于 Ant-contribu propertyregex 任务的信息,这将允许一些字符串操作,但我希望那里有一个 Ant 大师可以指出一个简单的解决方案。我相信这很有可能作为 Ant 新手,我只是忽略了显而易见的事情。