基于 http://ant.apache.org/manual/Types/mapper.html
我的目标是:
<target name="ms.copy-example"> <copy todir="${ms.custom}"> <fileset dir="${ms.example}"> <include name="build.xml" /> </fileset> <scriptmapper language="javascript"> self.addMappedName("dir1/"+source); self.addMappedName("dir2/"+source); self.addMappedName("dir3/"+source); </scriptmapper> </copy> </target>
我想把一个文件复制到三个地方。我不需要使用“脚本映射器”来完成这项工作,但我没有看到任何其他方法。不过,现在的情况是,它只是将文件复制到 第一 目录在列表中(dir1),而不是其他两个(dir2,dir3)。
有什么建议吗?
这个 scriptmapper 正在工作, 但是 默认情况下, copy 任务仅复制到一个(即第一个映射的)目标。 要使示例正常工作,请添加 enablemultiplemappings="true" 或类似副本:
scriptmapper
copy
enablemultiplemappings="true"
<copy todir="${ms.custom}" enablemultiplemappings="true">
从文档中 复制 任务选项 enablemultiplemappings :
复制
enablemultiplemappings
如果为真,任务将处理到所有 给定源路径的映射。 如果为false,则任务将只处理 第一个文件或目录。这个 只有当存在 映射器子元素。(自Ant 1.6起)