2012-11-21 20 views
0

如本Phing:得到一个文件名没有给出一个Phing环路延伸

<target name="lessc"> 
    <exec command="lessc ${absolute-filename}" logoutput="false" output="${project.basedir}/public/assets/css/libraries/${filename}" /> 
</target> 

<target name="build-in-loop"> 
    <foreach param="filename" absparam="absolute-filename" target="lessc"> 
    <fileset dir="${project.basedir}/assets/less/libraries/"> 
     <include name="*.less"/> 
    </fileset> 
    </foreach> 
</target> 

在目标lessc,我怎么能提取文件名,不从变量absolute-filename扩展?在上面的例子中,output文件具有扩展.less - 显然不是我所需要的。

我知道有少做了一个任务,那我可以延长Phing支持这个具体的操作,但我想先知道Phing基本上允许对变量的简单的字符串操作。

+0

哪里是你的榜样映射器的一部分? –

回答

0

找到了答案,不知道这是否是最好的解决办法,但对我的作品:

只需要使用映射器标签

<mapper type="glob" from="*.less" to="*"/> 

foreach循环,就像这样:

<target name="build-in-loop"> 
    <foreach param="filename" absparam="absolute-filename" target="lessc"> 
    <fileset dir="${project.basedir}/assets/less/libraries/"> 
     <include name="*.less"/> 
    </fileset> 
    </foreach> 
</target> 

此时,在target任务中的变量${filename}中将会有文件名无扩展名。