我开发了一个简单的插件,用于将构建结果通知到桌面,例如growl。 https://github.com/kompiro/notification-maven-plugin
现在,我认为没有好的方法来监听构建结果事件。
我测试了两种方式来监听事件。
一个。 MavenSession中的ExecutionListener#getRequest()
这种方式运行良好通知,但是有问题。它取代了默认的maven事件执行监听器。 因此,如果用户添加此插件,则没有maven执行日志。 我以为我的实现扩展了默认的事件执行监听器“ExecutionEventLogger”, 但我不能,因为ExecutionEventLogger的构造函数需要plexus的记录器。 我无法获得记录器对象。
湾使用EventSpy
这不是公共接口,用户必须将插件添加到maven.ext类路径中。这对用户不利。
我该如何正确地听取事件?
答案 0 :(得分:0)
为什么不在本地桌面上设置Jenkins服务器并运行测试并通知您?
詹金斯某处可能有类似咆哮的通知程序,或者最糟糕的情况是让它通过测试结果向localhost发送电子邮件。这也具有保持历史测试结果的优势。
如果您使用的是一个不错的SCM,例如GIT,那么您可以将Jenkins设置为轮询本地结帐作为其上游,以便您单独检查所有提交。如果使用不太好的SCM,我只需要将作业的第一步复制到工作区的所有源代码到Jenkins的工作区,这样就可以继续编写代码而不必担心破坏Jenkins的编译阶段。
此外,我赞成使用Maven构建步骤的FreeStyle项目到内置的Maven项目类型(但那可能只是我个人的偏见)