0

如何使用 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
          ...
    ....

提前致谢。问候。

4

1 回答 1

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

构建.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 目录集中包含的目录。
  • Groovy 可以访问正常的 ANT 任务。请注意复制操作上的“覆盖”标志。
于 2013-08-16T23:01:31.793 回答