使用Ant脚本将单个文件复制到特定目录下的所有子目录

时间:2013-08-16 11:20:51

标签: php netbeans ant

如何使用Ant将脚本单个文件index.html复制到目录的所有子目录。

我正在尝试构建一个Ant脚本来将index.html复制到所有子目录中。如果文件存在于特定的子目录中,则应替换该文件。

我的初始结构:

Directory A
   Sub-Directory AA
       file1
       file2
       ...
   Sub-Directory AB
       file1
       file2
       index.html
       ...
      Sub-Directory ABA
          file1
          file2
          ...
    ....

我想实现这个目标:

Directory A
   Sub-Directory AA
       file1
       file2
       index.html  <- file copied
       ...
   Sub-Directory AB
       file1
       file2
       index.html  <- file replaced
       ...
      Sub-Directory ABA
          file1
          file2
          index.html  <- file copied
          ...
    ....

提前致谢。问候。

1 个答案:

答案 0 :(得分:0)

以下示例使用groovy ANT任务。

实施例

├── build.xml
├── lib
│   └── groovy-all-2.1.6.jar
├── src
│   └── index.html
└── target
    └── DirectoryA
        ├── index.html
        ├── SubdirectoryAA
        │   └── index.html
        └── SubdirectoryAB
            ├── index.html
            └── SubdirectoryABA
                └── index.html

的build.xml

<project name="demo" default="copy">

   <path id="build.path">
      <pathelement location="lib/groovy-all-2.1.6.jar"/>
   </path>

   <target name="copy">
      <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>

      <dirset id="trgDirs" dir="target/DirectoryA"/>

      <groovy>
         project.references.trgDirs.each {
            ant.copy(file:"src/index.html", todir:it, overwrite:true, verbose:true)
         }
      </groovy>
   </target>

</project>

注意:

  • groovy脚本能够循环到ANT dirset中包含的目录。
  • Groovy可以访问正常的ANT任务。请注意复制操作中的“覆盖”标志。