1

我需要从 ant 运行这个命令:

pylint -f parseable src/apps/api | tee pylint.out

它输出一个 pylint.out 文件。

我试过这个:

<target name="pylint" description="Pylint">
    <exec executable="pylint">
        <arg line="-f parseable src/apps/api | tee ${basedir}/pylint.out"/>
    </exec>
</target>

但这不会产生 pylint.out 文件。有任何想法吗?

4

1 回答 1

2

似乎 ant 会将您的管道 ( |) 视为参数而不是 shell 的命令。

一种解决方案是将您的命令提取到脚本中:

pylint.sh:

#!/bin/bash
pylint -f parseable src/apps/api | tee $1/pylint.out

然后从<exec>任务中运行该脚本:

构建.xml:

<target name="pylint" description="Pylint">
    <exec executable="pylint.sh">
        <arg line="${basedir}"/>
    </exec>
</target>

这显然不是跨平台的,可能有我没有想到的更好的方法,但是如果需要,您可以拥有一个等效.bat文件并在 ANT 中进行操作系统检测,以使其在 Windows 上运行。

于 2012-11-23T14:13:55.090 回答