我有一个由多个开发人员共同完成的基于ant的构建。如果构建管道的任何部分发出警告,我想通过导致硬构建中断来约束团队。
实际上,我认为构建需要失败,如果stdout或stderr沿着"bwarn(ing)?b|berrorb|bfatalb"
的行包含一个正则表达式,其中b
's是单词边界。
我怎样才能做到这一点?
如果您想要控制构建的输出,您将需要实现一个自定义侦听器。更多信息请参见https://ant.apache.org/manual/listeners.html。一旦实现,您可以通过传递-listener fully_qualified_listener_classname
来指示Ant使用侦听器,前提是该类已添加到类路径中。
基本上,您需要实现org.apache.tools.ant.BuildListener
并在messageLogged
方法中执行逻辑,该方法接收与任务生成的日志相对应的构建事件。该事件包含要记录的消息,您可以解析该消息以确定是否停止构建,通常通过抛出像BuildException
这样的运行时异常。