Apache flex 如何使用Ant导出相对路径

Apache flex 如何使用Ant导出相对路径,apache-flex,ant,path,mxmlc,Apache Flex,Ant,Path,Mxmlc,我使用Ant和mxmlc将ActionScript类和MXML编译成SWF,同时维护Flex Builder(Flash Builder)项目的默认组织。我的许多ActionScript类都位于项目子目录中,因此我的项目按如下方式组织: MyBigProject -build-imports.xml -build.xml -bin-debug --src ---flash ---app ----CoolWidget1.swf ---Main.swf --test -src --flash -

我使用Ant和mxmlc将ActionScript类和MXML编译成SWF,同时维护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
<project name="project.root.imports">
    <dirname property="project.root.dir" file="${ant.file.project.root.imports}"/>
</project>
<project name="MyBigProject.src.flash.app.imports">
    <import file="../build-imports.xml" />
</project>
此目录结构维护Flash Builder项目的默认目录结构,因此我可以从Flash Builder IDE执行按钮构建。我已经将Ant构建xml添加到这个项目中,因此我也可以从命令行进行构建。我正在尝试创建可移植的ant构建脚本,这些脚本需要最少的更改才能在其他项目中重用。我有我想要的一切,除了导出相对路径

项目根目录下的build-imports.xml文件包含以下内容:

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
<project name="project.root.imports">
    <dirname property="project.root.dir" file="${ant.file.project.root.imports}"/>
</project>
<project name="MyBigProject.src.flash.app.imports">
    <import file="../build-imports.xml" />
</project>

而子项目文件夹包含build-imports.xml,其中包含以下内容:

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
<project name="project.root.imports">
    <dirname property="project.root.dir" file="${ant.file.project.root.imports}"/>
</project>
<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调试来指定放置二进制文件的位置。我唯一的问题是,我不知道如何创建与src文件夹下相同的目录结构。我需要能够导出一个相对路径或执行一些字符串操作来创建新的目录

考虑到上述信息,我如何选择一条已知路径,如:
${project.root.dir}/src/app
并派生如下目录路径:
${project.root.dir}/bin debug/app


我已经找到了一些关于Ant contribu propertyregex任务的信息,这将允许一些字符串操作,但我希望有一位Ant专家能够指出一个简单的解决方案。我相信这很可能是作为一个蚂蚁新手,我只是忽略了显而易见的问题。

我的构建文件自发布以来有了一些改进,但我已经解决了这个问题。我相信在前面描述的基本设置中,以下各项将正常工作:

将其添加到子项目的build.xml中的默认目标

<path id="build.path">
   <pathelement location="." />
</path>
<pathconvert property="build.dir" refid="build.path">
    <map from="${project.root.dir}" to="${project.root.dir}/bin-debug"/>
</pathconvert>


请注意,不需要先定义路径对象。它还可以将path location=“.”/>作为pathconvert的子级,而不是refid属性。我不知道有什么问题,但上面提到的内容在linux中不符合aspectation。就我而言,它适用于windows。有人能回答同样的问题吗?