这是我的蚂蚁脚本的一部分:
<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>
不起作用,因为xgettext
收到引用的文件列表,并将此列表视为单个文件名。怎么解决?
答案 0 :(得分:2)
您需要将每个文件分离到单独的arg
才能生效。
您可以使用--files-from
选项提供要处理到'xgettext'的文件列表文件。
这样的事情:将'find'输出写入文件,然后重新加载到'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>
或者,这里的变体假定您拥有Bourne Shell sh
- 如果您还有其他东西可以适应。这会将'find'输出直接传递给'xgettext':
<exec executable="sh">
<arg value="-c"/>
<arg value="find src/main/java -name '*.java' | xgettext -k_ -o gettext.pot -f -"/>
</exec>