Ant:复制文件夹,然后仅删除复制的文件



我需要一个构建脚本才能将包含所有嵌套文件和文件夹的文件夹复制到另一个文件夹。目标文件夹已包含其自己的文件和文件夹,并且其嵌套文件夹结构可以与源文件夹重叠。执行一些命令后,我只需要删除复制的文件。

例:

src_folder
  subfolder1
    file1
dest_folder
  subfolder1
    file2
    file3

在这里我只需要删除dest_folder/subfolder1/file1

有没有办法用蚂蚁来做到这一点?如果没有,您能否建议一个替代构建工具来实现这一点?

实现类似结果的一种方法是备份dest_folder,但它有很多文件,复制它需要很长时间。

示例

项目文件

├── build.xml
├── dest_folder
│   └── subfolder1
│       ├── file2
│       └── file3
└── src_folder
    └── subfolder1
        └── file1

构建输出

$ ant
Buildfile: build.xml
copy-files:
     [copy] Copying 1 file to dest_folder
     [copy] Copying src_folder/subfolder1/file1 to dest_folder/subfolder1/file1
run-cmd-on-files-in-dest-folder:
    [apply] dest_folder/subfolder1/file1
clean-files:
   [delete] Deleting dest_folder/subfolder1/file1

构建.xml

<project name="demo" default="run">
   <target name="run" depends="copy-files,run-cmd-on-files-in-dest-folder,clean-files"/>
   <target name="copy-files">
      <copy todir="dest_folder" verbose="true">
         <fileset dir="src_folder"/>
      </copy>
   </target>
   <target name="run-cmd-on-files-in-dest-folder">
      <apply executable="echo">
         <srcfile/>
         <fileset dir="dest_folder">
            <present present="both" targetdir="src_folder"/>
         </fileset>
      </apply>
   </target>
   <target name="clean-files">
      <delete verbose="true">
         <fileset dir="dest_folder">
            <present present="both" targetdir="src_folder"/>
         </fileset>
      </delete>
   </target>
</project>

相关内容

  • 没有找到相关文章

最新更新