2010-11-30 2 views
1

これは私のAntスクリプトの一部です:xgettextは、単一のファイル名として、このリストのファイルやお菓子の引用しリストを受け取るので<exec>にファイルのリストを渡すには?

<target> 
    <exec executable="find" outputproperty="found"> 
    <arg value="src/main/java"/> 
    <arg line="-name '*.java'"/> 
    </exec> 
    <exec executable="xgettext"> 
    <arg value="-k_"/> 
    <arg line="-o gettext.pot"/> 
    <arg line="${found}"/> 
    </exec> 
</target> 

は動作しません。どのようにそれを解決するには?

+0

代わりに khachik

+0

この場合、 'xgettext'は引用符付きの' 'find src/ma ..." '文字列を受け取ります。バッククォートのシェルコマンドではありません。 – yegor256

+0

適用の使用を検討してください:http://stackoverflow.com/questions/6288010/apache-ant-difference-exec-vs-apply – TJR

答えて

2

各ファイルを別々のファイルに分割して動作させるには、argにする必要があります。

--files-fromオプションを使用して、 'xgettext'に処理するファイルのリストファイルを指定することができます。 はどのようにこのようなものについて:し、「にxgettext」にリロードし、ファイルへの出力を「検索」の書き込み:また

<target> 
    <exec executable="find" outputproperty="found"> 
    <arg value="src/main/java"/> 
    <arg line="-name '*.java'"/> 
    </exec> 
    <echo file="xgettext.files" message="${found}" /> 
    <exec executable="xgettext"> 
    <arg value="-k_"/> 
    <arg value="-o" /> 
    <arg value="gettext.pot"/> 
    <arg value="--files-from=xgettext.files"/> 
    </exec> 
</target> 

、ここにあなたがボーンシェルsh前提と変化だ - あなたは何か他のものを持っている場合あなたはおそらく適応することができます。このパイプは、直接 'にxgettext' への出力を '検索':

<exec executable="sh"> 
    <arg value="-c"/> 
    <arg value="find src/main/java -name '*.java' | xgettext -k_ -o gettext.pot -f -"/> 
</exec> 
+0

私は2番目のオプションが好きです、それはきれいです。 – yegor256

関連する問題