2012-01-06 6 views
1
に変更しています

私はjavascriptファイルを連結したり縮小したりするためにantビルドに取り組んでいます。私は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のバグです。

ダブルドル記号$$は、正規表現で$に置き換えられました。余分なドル記号がエスケープ文字として使用されています。

使用している連結機能では、ant-regexpsが呼び出されています。明らかにregexpsを明示的に使用していないため、ant-regexpsがどこで使われているのか正確に把握するのは難しいです。だから、私の推測では、あなたが使用している連結機能はの内部コールをant-regexpsどこかに呼び出しているということです。

別の連結方法を試してみてください。たとえば、Concatタスクは、あなたを助けるかもしれません。

関連する問題