0

给定这样的 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 是否允许对变量进行简单的字符串操作。

4

1 回答 1

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>

此时,任务中的变量${filename}中将target出现不带扩展名的文件名。

于 2012-11-22T16:26:51.440 回答