在Ant中的路径中转换../

时间:2009-12-02 13:41:53

标签: ant

我有一个包含此行的Ant构建:

WORKSPACE.dir = ${basedir}/../

然后我有:

CORE_PROJECT.dir= ${WORKSPACE.dir}/UUI_Core

这意味着我最终会得到这样的路径:

C:\dev\workspaces\RTC\UUI_Core_ANT/..//UUI_Core

几乎在所有情况下都可以正常工作,但我正在尝试构建一个要在构建中使用的类列表。目前我有这段代码:

<pathconvert 
    property="coreClasses" 
    pathsep=" " 
    dirsep="." 
    refid="coreSources">
    <map from="C:\dev\workspaces\RTC\UUI_Core\src\" to="" />
    <mapper>
        <chainedmapper>
            <globmapper from="*.mxml" to="*"/>
        </chainedmapper>
        <chainedmapper>
            <globmapper from="*.as" to="*"/>
        </chainedmapper>
    </mapper>
</pathconvert>

删除文件位置和jsut离开包结构的工作是什么。但它不是很灵活。我应该可以在这里使用CORE_PROJECT.dir。

那么,我该如何转换

C:\dev\workspaces\RTC\UUI_Core_ANT/..//UUI_Core

C:\dev\workspaces\RTC\UUI_Core

1 个答案:

答案 0 :(得分:7)

WORKSPACE.dir = ${basedir}/../

这不是有效的Ant语法。

要转换..,您应使用location任务的<property>属性,而不是valuelocation用绝对路径替换属性值。在你的情况下:

<property name="WORKSPACE.dir" location="${basedir}/.."/>

编辑:在设置类似路径的属性时,我应该添加始终使用location属性。