Ant脚本需求:复制包含指定字符串文件的文件夹全部内容
解决Ant脚本复制目标文件所在完整文件夹的需求
原脚本仅能复制包含extends Car的单个JS文件,要实现复制该文件所在整个文件夹的所有内容,我们可以分两步操作:先定位到符合条件的JS文件的父目录,再复制这些目录下的全部内容。
以下是修改后的完整Ant脚本:
<?xml version="1.0" encoding="UTF-8"?> <project name="sample"> <property file="build.properties"/> <target name="test"> <!-- 第一步:找到所有包含"extends Car"的JS文件 --> <fileset id="targetFiles" dir="${par}"> <include name="**/*.js"/> <contains text="extends Car"/> </fileset> <!-- 第二步:提取这些文件所在的父目录,去重后保存为路径集合 --> <pathconvert property="targetDirs" refid="targetFiles"> <chainedmapper> <!-- 去掉文件名,只保留目录路径 --> <flattenmapper negate="true"/> <!-- 去重,避免重复处理同一目录 --> <uniquemapper/> </chainedmapper> </pathconvert> <!-- 第三步:复制所有目标目录下的内容到指定位置 --> <copy todir="unlocked/"> <fileset dir="${par}"> <!-- 匹配所有目标目录下的文件及子结构 --> <include name="${targetDirs}/**"/> </fileset> </copy> </target> </project>
关键部分说明:
<fileset id="targetFiles">:精准筛选出所有包含extends Car的JS文件,避免匹配无关类型文件。<pathconvert>:将找到的文件路径转换为其父目录路径,通过<uniquemapper>确保每个目录只被处理一次,避免重复复制。- 最后的
<copy>任务:基于提取出的目录,完整复制这些目录下的所有文件及子目录结构到unlocked/目录。
build.properties文件无需修改,保持原配置即可:
par = src/lwc
内容的提问来源于stack exchange,提问作者Neetesshhr
相关产品推荐
相关产品推荐

