基于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>
我正在尝试将一个文件复制到三个位置。我不必使用'scriptmapper'来执行此操作,但我没有看到任何其他方法来执行此操作。然而,正在发生的事情是它只将文件复制到列表中的第一个目录(dir1)而不是其他两个(dir2,dir3)。
有人建议吗?
答案 0 :(得分:2)
scriptmapper
正在运行,但默认情况下,copy
任务仅复制到一个(即第一个映射的)目标。
要让您的示例正常工作,请将enablemultiplemappings="true"
或类似内容添加到副本中:
<copy todir="${ms.custom}" enablemultiplemappings="true">
来自copy
任务选项enablemultiplemappings
的文档:
如果为true,则任务将处理到所有人 给定源路径的映射。 如果为false,则任务仅处理 第一个文件或目录。这个 属性仅在存在时才相关 映射器子元素。 (自Ant 1.6以来。)