Ant scriptmapper不像宣传的那样工作?

时间:2010-05-04 14:22:13

标签: java ant

基于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)。

有人建议吗?

1 个答案:

答案 0 :(得分:2)

scriptmapper正在运行,默认情况下,copy任务仅复制到一个(即第一个映射的)目标。 要让您的示例正常工作,请将enablemultiplemappings="true"或类似内容添加到副本中:

<copy todir="${ms.custom}" enablemultiplemappings="true">

来自copy任务选项enablemultiplemappings的文档:

  

如果为true,则任务将处理到所有人   给定源路径的映射。   如果为false,则任务仅处理   第一个文件或目录。这个   属性仅在存在时才相关   映射器子元素。 (自Ant 1.6以来。)