是否有一种简单的方法可以在Maven中为每个构建发送电子邮件通知而无需外部CI工具,就像Ant一样?如何发送Maven构建的电子邮件通知
回答
如果CI是不是我会用一个简单的脚本包装选项:
mvn install 2>&1 | tee build.log && cat build.log | mail -s 'Maven build output' [email protected] && rm -f build.log
如果你决定使用CI工具,我会强烈推荐Hudson。该installation page显示它是多么容易运行。 持续集成服务器听起来浮夸和企业,但哈德森是死的简单。
我强烈建议使用CI工具为您管理这个,我个人喜欢配置哪些电子邮件将在构建上发送以避免垃圾邮件。例如只在构建开始失败时通知,或者再次开始工作,而不是每次失败。
如果您确定这是正确的方法,您可以使用maven-changes-plugin在每个版本上发送电子邮件。您可以customise the mail template with velocity,并将目标的执行绑定到适当的阶段,以便在需要时发送它。
我也将配置放在配置文件中,以便在需要时发送(即当配置文件处于活动状态时)。
的配置看起来是这样的:
<profiles>
<profile>
<id>notify</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<executions>
<execution>
<!--send an email in the install phase,
could be changed depending on your needs-->
<phase>install</phase>
<goals>
<goal>announcement-mail</goal>
</goals>
</execution>
</executions>
<configuration>
<smtpHost>mail.yourhost.com</smtpHost>
<smtpPort implementation="java.lang.Integer">25</smtpPort>
<toAddresses>
<toAddress implementation="java.lang.String">
[email protected]</toAddress>
<toAddress implementation="java.lang.String">
[email protected]</toAddress>
</toAddresses>
<!--using a custom velocity template in
src/main/resources/mailTemplate/announcement.vm -->
<template>announcement.vm</template>
<templateDirectory>mailTemplate</templateDirectory>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
感谢您的信息和建议。 就我的理解而言,Maven Changes Plugin发送的内容是模板中定义的内容。但我想要的就是maven在控制台中的输出。 因为我是Maven的新手,并且以前有关Ant构建的知识,所以我只是觉得不方便,无法在Google搜索后几小时内找到如何在Maven中实现这一点。也许这不仅仅是Maven希望做的事情。但是我仍然想让我摆脱困惑,为什么Maven不会这么做,通过发送电子邮件通知。 – moonese 2009-08-07 11:12:18
以后我会尝试使用CI工具,只是想知道为什么Maven不像蚂蚁一样发送电子邮件通知的设计考虑事项。 – moonese 2009-08-07 11:22:20
Maven中的问题是构建尚未完成。你可以使用exec插件来分割实际的版本,将输出重定向到一个文件,然后发送该文件,但是最好使用外部CI工具或脚本来处理邮件。 – 2009-08-07 11:26:23
虽然问题有点老旧,但有人可能仍然需要不同的解决方案:我已经为此创建了一个插件。看看plugin's page at github.com。 多部分替代MimeMessages没有实现(看看FAQ的原因),以及一个体面的模板,但只要你只是想发送带附件的文本邮件它应该做的伎俩。
我打算把它提交给mojo.codehaus.org,因此gId。现在,你必须自己编译它 - 抱歉给你带来不便。
还有一个高度可定制的Postman mail plugin它给你选择发送测试结果,甚至任意html指定源文件。 Here's一个很好的线程解释应该如何配置。
- 1. TeamCity不发送电子邮件通知
- 2. ClearCase:发送电子邮件通知
- 3. 从Jenkins发送电子邮件通知
- 4. 电子邮件通知发送或不
- 5. 如何通过电子邮件发送电子邮件地址
- 6. 使用MailGun,通知 - Laravel发送电子邮件通知5.4
- 7. 如何在访问页面时发送电子邮件通知?
- 8. 如何在cakephp中动态发送电子邮件通知?
- 9. 如何将laravel通知发送到自定义电子邮件
- 10. 如何显示电子邮件发送通知ipad
- 11. CakePHP如何发送电子邮件通知
- 12. 如果url关闭,发送电子邮件通知的程序
- 13. 如何发送电子邮件到特定的电子邮件?
- 14. 如何通过Ruby在Linux上的电子邮件发送电子邮件
- 15. Pimcore如何创建PDF并通过电子邮件发送
- 16. django通知不发送任何电子邮件
- 17. 发送通知电子邮件,如果进程不运行,
- 18. 通过电子邮件发送的navigator.userAgent
- 19. 如何发送电子通知?
- 20. 通过电子邮件发送文件
- 21. PHP发送电子邮件多次发送电子邮件
- 22. 如何在asp.net中通过电子邮件发送邮件
- 23. 例外通知程序插件不发送电子邮件
- 24. Rails异常通知插件 - 强制发送电子邮件
- 25. PHP日历 - 如何让它发送新的事件的电子邮件通知?
- 26. 物品发送后的电子邮件通知magento
- 27. 在Teamcity中发送电子邮件通知的脚本
- 28. 简单的Web服务发送电子邮件通知?
- 29. 用于发送电子邮件通知的SQL作业
- 30. 队列中的通知不发送电子邮件
感谢您的脚本和亲切的话语。我会尝试下哈德森。 – moonese 2009-08-07 17:06:14