後輩が嵌っていたので書いてみる。
build.xmlの中ではリテラルとして「"」がエスケープできません。
なので以下のようなbuild.xmlはエラーになります。
↓実行すると
>ant test Buildfile: build.xml BUILD FAILED build.xml:14: Element type "echo" must be followed by either attribute specifications, ">" or "/>".
こんな風に\でエスケープしても同じ。
当たり前だがVBっぽく「""」とかExcelっぽく「~」とかもダメ
なのでどうするかということなんてことはないbuild.propertiesに書きます。
build.properties
hoge = ant\u306f"\u87fb"\u3067\u3059 ←2バイト文字なのでnative2asciiして記載する
とすると
build>ant test Buildfile: build.xml test: [echo] antは"蟻"です BUILD SUCCESSFUL
となり問題なくクリア。置換するときとかもこれでOK。動的に使う場合は変数として「"」のみをbuild.propertiesに書き出すとかすれば良い。
-
-
- -
-
20090331追記
コメントで教えていただいたのだが、以下のように書けばエスケープできるらしい!
<echo message="antは$#34;蟻$#34;です"/>
なるほど!!