Ant のように、外部の CI ツールを使用せずにビルドごとに Maven で電子メール通知を送信する簡単な方法はありますか?
5 に答える
CI がオプションでない場合は、単純なスクリプト ラッパーを使用します。
mvn install 2>&1 | tee build.log && cat build.log | mail -s 'Maven build output' user@example.com && rm -f build.log
CI ツールを使用する場合は、Hudson を強くお勧めします。インストールページは、実行がいかに簡単かを示しています。継続的インテグレーション サーバーは豪華で大企業向けに聞こえますが、Hudson は非常にシンプルです。
CIツールを使用してこれを管理することを強くお勧めします。スパムを回避するために、ビルドで送信する電子メールを個人的に構成したいと思います。たとえば、すべての失敗ではなく、ビルドが失敗し始めたとき、または再び機能し始めたときにのみ通知します。
これが正しいアプローチであると確信している場合は、maven-changes-pluginを使用して、ビルドごとにメールを送信できます。メールテンプレートを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">
someones@email.com</toAddress>
<toAddress implementation="java.lang.String">
someoneelse@email.com</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>
質問は少し古いですが、誰かがまだ別の解決策を必要としている可能性があります.そのためのプラグインを作成しました. github.comのプラグインのページをご覧ください。マルチパート代替 MimeMessages は実装されておらず (理由についてはFAQを参照してください)、適切なテンプレートも実装されていますが、添付ファイル付きのテキスト メールを送信したいだけであれば、うまくいくはずです。
これを mojo.codehaus.org に提出する予定なので、gId です。今のところ、自分でコンパイルする必要があります。ご不便をおかけして申し訳ありません。
テスト結果やソース ファイルを指定する任意の html を送信するオプションを提供する高度にカスタマイズ可能なPostman メール プラグインもあります。これは、どのように構成する必要があるかを説明する良いスレッドです。
私はMavenを使用していませんが、プラグインでこれを行うことができると思います.