ant转换路径分隔符

时间:2015-07-17 15:42:00

标签: ant path

在ant文件中,我试图将windows样式路径分隔符转换为unix样式。我有以下内容:

<path id="basedir.path">
    <!-- ${basedir} is a project attribute. -->
    <pathelement path="${basedir}" />
</path>
<pathconvert property="adjusted_basedir" refid="basedir.path">
    <mapper>
        <globmapper from="*" to="*" handledirsep="yes"/>
    </mapper>
</pathconvert>
<echo level="verbose" message="Basedir: ${basedir}" /> 
<echo level="verbose" message="Adj Basedir: ${adjusted_basedir}" />

adjusted_basedir的输出与basedir相同。我尝试过使用

<mapper type="regexp" from="\\" to="/" />

adjusted_basedir的输出只是“/”。如何将路径分隔符从Windows转换为unix样式?我想避免为这个使用附加组件(因此ant-contrib已经出局)。

1 个答案:

答案 0 :(得分:2)

尝试使用filtermapper

<pathconvert property="adjusted_basedir" refid="basedir.path">
    <filtermapper>
        <replacestring from="\" to="/" />
    </filtermapper>
</pathconvert>

请参阅https://ant.apache.org/manual/Types/mapper.html

pathconvert任务中还有一个属性可以执行此操作:

<pathconvert property="adjusted_basedir" refid="basedir.path" dirsep="/" />