0

我开发了一个简单的插件来像咆哮一样将构建结果通知到桌面。 https://github.com/kompiro/notification-maven-plugin

现在,我认为没有很好的方法来监听构建结果事件。

我测试了两种监听事件的方法。

一个。来自 MavenSession#getRequest() 的 ExecutionListener

这种方式在下面实现。 https://github.com/kompiro/notification-maven-plugin/blob/master/src/main/java/org/kompiro/nortification/buildresult/NotificationMojo.java

这种方式通知运行良好,但是有一个问题。它取代了默认的 Maven 事件执行侦听器。因此,如果用户添加此插件,则没有 Maven 执行日志。我以为我的实现扩展了默认事件执行侦听器“ExecutionEventLogger”,但我不能,因为 ExecutionEventLogger 的构造函数需要 plexus 的记录器。我无法获取记录器对象。

湾。使用 EventSpy

这不是公共接口,用户必须将插件添加到 maven.ext 类路径。这对用户不利。

如何正确收听事件?

4

1 回答 1

0

为什么不在你的本地桌面上设置一个 Jenkins 服务器并让它运行测试并通知你呢?

Jenkins 在某处可能有一个类似咆哮的通知器,或者最坏的情况是让它向 localhost 发送一封包含测试结果的电子邮件。这还具有保留历史测试结果的优点。

如果您使用的是 GIT 等优秀的 SCM,那么您可以将 Jenkins 设置为轮询您的本地结帐作为其上游,以便您单独检查所有提交。如果使用不太好的 SCM,我将在工作的第一步将所有源代码从您的工作区复制到 Jenkins 的工作区,这样您就可以继续编写代码而不必担心破坏 Jenkins 的编译阶段。

此外,我更倾向于使用带有 Maven 构建步骤的 FreeStyle 项目到内置 Maven 项目类型(但这可能只是我个人的偏见)

于 2012-08-13T08:07:47.137 回答