【发布时间】:2014-12-11 23:57:14
【问题描述】:
我正在尝试将基于 ant 的 Android 构建添加到更大的基于 grunt 的构建系统中。然而,当 ant 调用javac 时,它会将javac 的标准错误重定向到标准输出(在控制台输出中添加[javac] 前缀时)。不幸的是,这意味着 grunt 会丢弃有用的错误输出,除非我以详细模式运行它——我宁愿不这样做。
但是,将ant 的标准输出重定向到标准错误会导致不同的问题,因为 grunt 构建会将 任何标准错误解释为要中止的错误。
我想让 ant 做的是将 javac 的 stderr 输出保留在 stderr 上(这样我就知道为什么我的构建失败了),并将 stdout 保留在 stdout 上。但是,我在 Android 的 build.xml 中没有看到任何会影响这一点的内容,ant 的文档也没有用处。
当然,“简单地”将 ant build.xml 逻辑移植为 grunt 构建的一部分是一项相当大的工作,我目前不想这样做。
那么,我在 stderr 重定向背后是否有一些 ant(或 Android 的 build.xml)选项,或者是否有其他方法可以实际让我的错误输出显示为错误?
【问题讨论】:
-
如何使用带有 ant 的记录器,这会将错误放在对您有用的地方?你没有具体说明你想对这些错误做什么。
-
我想在控制台上看到它们,这样我就知道为什么我的构建失败了。我认为这是不言而喻的,但我会相应地进行编辑。
-
好的。它出现在控制台上有多重要?如果您将消息保存到您可以查看的文件中,这还不够吗?
-
@RealSkeptic 将它们保存到文件中并不理想,但总比没有好,之后我总是可以将它转换到 stderr。
-
那我建议你看看
ant提供的各种记录器,或者创建一个自定义的。