我需要一个构建脚本,以便能够将包含其所有嵌套文件和文件夹的文件夹复制到另一个文件夹。目标文件夹已包含自己的文件和文件夹,其嵌套文件夹结构可与源文件夹重叠。执行了一些命令后,我只需要删除复制的文件。
示例:
src_folder
subfolder1
file1
dest_folder
subfolder1
file2
file3
此处我只需要删除dest_folder/subfolder1/file1
有没有办法用Ant做到这一点?如果没有,你能否建议一种可以实现这一目标的替代构建工具?
实现类似结果的一种方法是备份dest_folder
,但它有很多文件,复制它需要很长时间。
答案 0 :(得分:0)
项目文件
├── 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>