将文件复制到所有子文件夹中

时间:2013-06-27 18:04:54

标签: php ant glob

我有一个php.ini文件应该激活PHP压缩(无法在我的服务器上设置全局设置)。不幸的是,该文件中的设置仅适用于完全相同文件夹中的文件。为了将这些设置应用于该项目中的所有文件,我需要将php.ini文件复制到所有子目录中。

现在,在用Ant构建项目后,我正在寻找Ant支持的解决方案......

有没有办法做glob(IS_DIR) - 样式?

3 个答案:

答案 0 :(得分:1)

感谢您指出我正确的方向!

我现在使用的目标看起来像这样:

<target name="enable.compression">
    <apply executable="cp">
        <arg value="php.ini" />
        <dirset dir="">
            <include name="*/**" />
        </dirset>
    </apply>
</target>

它完全符合它应该做的......

仅使用<dirset dir="">导致文件尝试覆盖自身,因为该方法中包含的根目录

答案 1 :(得分:0)

最简单的解决方案是使用ant-contrib及其for任务。

这是一个构建文件,它应该执行预期的副本:

<ac:for param="dir">
  <dirset dir="destdir" />
  <sequential>
    <copy file="php.ini" todir="@{dir}" />
  </sequential>
</ac:for>

答案 2 :(得分:0)

纯ANT解决方案可以利用ANT中的apply task

  <apply executable="cp">
     <arg value="/path/to/php.ini"/>
     <dirset dir="/target/dir/containing/sub/dirs"/>
  </apply>