如果标准输出或错误包含警告,如何使 Ant 构建失败?
How to make Ant build fail if standard out or error contains a warning?
我有一个由多个开发人员共同开发的基于 Ant 的构建。如果构建管道的任何部分发出警告,我想通过导致硬构建中断来约束团队。
实际上,如果 stdout 或 stderr 包含符合 "\bwarn(ing)?\b|\berror\b|\bfatal\b"
的正则表达式,其中 \b
是单词边界,我认为构建需要失败。
我怎样才能做到这一点?
如果你想控制构建的输出,你需要实现一个自定义监听器。有关详细信息,请参阅 https://ant.apache.org/manual/listeners.html。实现后,您可以通过传递 -listener fully_qualified_listener_classname
来指示 Ant 使用您的侦听器,假设 class 已添加到 class 路径。
基本上您需要实现 org.apache.tools.ant.BuildListener
并在 messageLogged
方法中执行您的逻辑,该方法接收与任务生成的日志相对应的构建事件。该事件包含要记录的消息,您可以解析该消息以确定是否停止构建,通常通过抛出运行时异常,如 BuildException
.
我有一个由多个开发人员共同开发的基于 Ant 的构建。如果构建管道的任何部分发出警告,我想通过导致硬构建中断来约束团队。
实际上,如果 stdout 或 stderr 包含符合 "\bwarn(ing)?\b|\berror\b|\bfatal\b"
的正则表达式,其中 \b
是单词边界,我认为构建需要失败。
我怎样才能做到这一点?
如果你想控制构建的输出,你需要实现一个自定义监听器。有关详细信息,请参阅 https://ant.apache.org/manual/listeners.html。实现后,您可以通过传递 -listener fully_qualified_listener_classname
来指示 Ant 使用您的侦听器,假设 class 已添加到 class 路径。
基本上您需要实现 org.apache.tools.ant.BuildListener
并在 messageLogged
方法中执行您的逻辑,该方法接收与任务生成的日志相对应的构建事件。该事件包含要记录的消息,您可以解析该消息以确定是否停止构建,通常通过抛出运行时异常,如 BuildException
.