Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant:复制文件夹,然后仅删除复制的文件_Ant_Copy_Build Automation - Fatal编程技术网

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

Ant:复制文件夹,然后仅删除复制的文件,ant,copy,build-automation,Ant,Copy,Build Automation,我需要一个构建脚本,以便能够将一个文件夹及其所有嵌套文件和文件夹复制到另一个文件夹。目标文件夹已包含自己的文件和文件夹,其嵌套文件夹结构可能与源文件夹重叠。执行了一些命令之后,我只需要删除复制的文件 例如: src_folder subfolder1 file1 dest_folder subfolder1 file2 file3 这里我只需要删除dest_文件夹/子文件夹1/file1 有没有办法用Ant做到这一点?如果没有,你能推荐一个替代的构建工具使之成

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

例如:

src_folder
  subfolder1
    file1

dest_folder
  subfolder1
    file2
    file3
这里我只需要删除
dest_文件夹/子文件夹1/file1

有没有办法用Ant做到这一点?如果没有,你能推荐一个替代的构建工具使之成为可能吗

实现类似结果的一种方法是备份
dest_文件夹
,但它有很多文件,而且复制时间太长。

示例 项目文件

├── 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
编译文件

<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>