2013-05-28 54 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循環修剪屬性 –