我想做的是:
<exec executable="thrift" dir="${thriftsrc}">
<arg value="--gen java"/>
<arg value="-out ${src}"/>
<arg value="mqlServer.idl"/>
</exec>
我在C:\ Windows \ System32 \中复制了thrift.exe,因此该文件肯定在PATH中。我已经尝试了几个可执行的参数,完整路径,有和没有.exe但它不适用于任何变体。
但这很有效:
<exec executable="perl" dir="${generators}">
<arg value="compactTalib.pl"/>
<arg value="${talibsrc}"/>
</exec>
任何想法如何在我的ant构建中调用我的thirft编译器?
答案 0 :(得分:0)
首先,进入DOS提示符并输入“thrift”。它“有效”吗?我希望它给你一个错误,但至少找到exe。如果找不到exe,请在返回Ant之前解决该问题。
其次,在Ant中回显$ {thriftsrc}。那是C:\ Windows \ System32吗?如果没有,省略dir参数。它是可选的,所以你可以删除它,只需使用路径。
最后,我看到了另一个你尚未遇到的问题。这将作为单个参数“ - gen java”传入。
<arg value="--gen java"/>
doc的相关部分是:
是包含a的单个命令行参数 空格字符,不是单独的命令“-l”和“-a”。
答案 1 :(得分:0)
这可能是应该调用thrift
命令的方式:
<exec executable="thrift" dir="${thriftsrc}">
<arg value="--gen"/>
<arg value="java"/>
<arg value="-out"/>
<arg value="${src}"/>
<arg value="mqlServer.idl"/>
</exec>
另外,请考虑在failonerror
任务中添加<exec>
:
<exec executable="thrift" dir="${thriftsrc}" failonerror="yes">
这将导致Ant脚本以错误消息结束,这将有助于排除故障。