代码之家  ›  专栏  ›  技术社区  ›  andersonbd1

Ant脚本映射器不能像广告中那样工作?

  •  1
  • andersonbd1  · 技术社区  · 14 年前

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

    有什么建议吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   martin clayton egrunin    14 年前

    这个 scriptmapper 正在工作, 但是 默认情况下, copy 任务仅复制到一个(即第一个映射的)目标。 要使示例正常工作,请添加 enablemultiplemappings="true" 或类似副本:

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

    从文档中 复制 任务选项 enablemultiplemappings :

    如果为真,任务将处理到所有 给定源路径的映射。 如果为false,则任务将只处理 第一个文件或目录。这个 只有当存在 映射器子元素。(自Ant 1.6起)