2013-05-28 16 views
0

在我的财产我有一个变量定义文件:副本不是在Ant脚本的工作

require.extensions = html, htm 

,我使用如下变量:

<for list="${require.extensions}" param="letter"> 
       <sequential> 
        <copy todir="${dir.publish.html}">           
         <fileset dir="${project.dir}"> 
          <include name="**/*[email protected]{letter}"/> 
         </fileset> 
        </copy> 
       </sequential> 
      </for> 

我想复制所有文件带有扩展名html和htm到$ {project.dir}目录到$ {dir.publish.html} dir

但是目前它只复制html文件而不是htm文件。为什么这样?因为我在@ {letter}中获取了html和htm值,但是我无法在里面使用echo,因此我无法检查@ {letter}的值。我的代码有问题吗?


<copy todir="${dir.publish.html}"> 
    <fileset dir="${project.dir}"> 
     <include name="**/*.html"/>       
      <include name="**/*.htm"/> 
    </fileset> 
</copy> 

如果我这样做,将工作。但是想制作.html | .htm应该被动态插入。

+0

你可以添加此语句 Letter @ {letter}之前或之后include并查看打印什么值? – Raghuram

+0

它显示我的文件集不支持嵌套的“回声”元素 –

+0

如果我把它放在副本之前或之后,它显示我副本不支持嵌套的“回声”元素。 –

回答

1

鉴于documentation of the for task,用于将字符串拆分为标记的默认分隔符为,。这意味着您的列表将包含两个标记:html<space>htm。因此,您的任务将复制以.<space>htm结尾的所有文件。

+0

是的!你是正确的由于空间它忽略了第二个扩展,即。 htm。感谢您指出并让我相当清楚。 我们可以在这里使用修剪来删除每个扩展的前导空格吗? –

+0

O!是。我们使用For循环修剪属性 –