2012-01-06 17 views
1

我正在研究ant build以便連接和縮小我的JavaScript文件。我有一個單獨的屬性文件,其中列出了js文件以及加載它們的順序。我正在使用Mootools。當我在構建運行下面的代碼,我所有的$$被轉換爲$:

<loadfile property="js.files" srcFile="${basedir}/${dir.source}/javascript.files"> 
    <filterchain> 
     <striplinecomments> 
      <comment value="#"/> 
     </striplinecomments> 

     <!-- this filter outputs lines delimited by "," --> 
     <tokenfilter delimoutput=","/> 
    </filterchain> 
</loadfile> 

<!-- create a place holder variable that we will append file contents to --> 
<var name="concat.script.contents" value=""/> 

<for list="${js.files}" param="file" delimiter=","> 
    <sequential> 
     <loadfile property="@{file}.script.contents" srcfile="${basedir}/${dir.static}@{file}"/> 
     <var name="concat.script.contents" value="${concat.script.contents}${@{file}.script.contents}"/> 

     <!-- output the file contents here, everything looks okay --> 
     <echo>${@{file}.script.contents}</echo> 
    </sequential> 
</for> 

<!-- output the final result, now all $$ have been converted to $. why? --> 
<echo>${concat.script.contents}</echo> 

我與螞蟻,但沒有在上面的代碼相當新的指示,我認爲所有的$$應改爲$。

回答

0

這可能是一個螞蟻錯誤。

雙美元符號$$用正則表達式替換爲$ - 額外的美元符號用作轉義字符。

您正在使用的串聯函數調用了ant-regexps。而且很難找出究竟使用了哪些ant-regexps,因爲顯然你沒有明確地使用regexps。所以,我的猜測是你正在使用的連接函數有一個內部的調用ant-regexps的地方。

嘗試使用另一種連接方式。例如,Concat任務可能會幫助您。