2009-08-07 69 views

回答

4

如果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显示它是多么容易运行。 持续集成服务器听起来浮夸和企业,但哈德森是死的简单。

+0

感谢您的脚本和亲切的话语。我会尝试下哈德森。 – moonese 2009-08-07 17:06:14

0

我不使用Maven,但我认为你可以用plugin来做到这一点。

+0

感谢您的回复。我已经在谷歌搜索,并已阅读帖子,但Maven通知插件不完全是我想要的文章。它的目的是发送'deploy'阶段的电子邮件通知,名称为templates.xml。 但我想要的是在每个maven构建中发送电子邮件的方式,以便我可以获取构建成功/失败通知,其内容与maven控制台中的内容相同。 – moonese 2009-08-07 07:31:13

2

我强烈建议使用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> 
+0

感谢您的信息和建议。 就我的理解而言,Maven Changes Plugin发送的内容是模板中定义的内容。但我想要的就是maven在控制台中的输出。 因为我是Maven的新手,并且以前有关Ant构建的知识,所以我只是觉得不方便,无法在Google搜索后几小时内找到如何在Maven中实现这一点。也许这不仅仅是Maven希望做的事情。但是我仍然想让我摆脱困惑,为什么Maven不会这么做,通过发送电子邮件通知。 – moonese 2009-08-07 11:12:18

+0

以后我会尝试使用CI工具,只是想知道为什么Maven不像蚂蚁一样发送电子邮件通知的设计考虑事项。 – moonese 2009-08-07 11:22:20

+0

Maven中的问题是构建尚未完成。你可以使用exec插件来分割实际的版本,将输出重定向到一个文件,然后发送该文件,但是最好使用外部CI工具或脚本来处理邮件。 – 2009-08-07 11:26:23

1

虽然问题有点老旧,但有人可能仍然需要不同的解决方案:我已经为此创建了一个插件。看看plugin's page at github.com。 多部分替代MimeMessages没有实现(看看FAQ的原因),以及一个体面的模板,但只要你只是想发送带附件的文本邮件它应该做的伎俩。

我打算把它提交给mojo.codehaus.org,因此gId。现在,你必须自己编译它 - 抱歉给你带来不便。

1

还有一个高度可定制的Postman mail plugin它给你选择发送测试结果,甚至任意html指定源文件。 Here's一个很好的线程解释应该如何配置。

相关问题