2009-08-07 22 views

答えて

4

CIは、私は単純なスクリプトラッパー使用するオプションはない場合:あなたはCIを使用することを決定しない場合

mvn install 2>&1 | tee build.log && cat build.log | mail -s 'Maven build output' [email protected] && rm -f build.log 

は、ツール、私は強くハドソンをお勧めします。 installation pageには、実行が簡単に表示されます。 継続的インテグレーションサーバは華やかでエンターテイメント性に富んでいるが、ハドソンは死んでいる。

+0

あなたのスクリプトと親切な言葉をありがとう。私は次にハドソンを試みます。 – moonese

0

Mavenは使用しませんが、pluginでこれを行うことができます。

+0

返信いただきありがとうございます。私はGoogleで検索し、すでに投稿を読んでいるが、Maven Notify Pluginは記事から欲しいものではない。その目的は、名前変更のテンプレートに「デプロイ」フェーズの電子メール通知を送信することです。 しかし、私が望むのは、各Mavenビルドで電子メールを送信する方法です。つまり、Mavenコンソールの内容と同じ内容のビルド成功/失敗通知を得ることができます。 – moonese

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

+0

私は後でCIツールを使用しようとしています。なぜなら、MavenがAntのように電子メール通知を送信しない理由を設計の考慮事項に知りたいからです。 – moonese

+0

Mavenでやっている問題は、ビルドがまだ完了していないことです。 execプラグインを使用して実際のビルドをフォークし、出力をファイルにリダイレクトした後、そのファイルをメールすることができますが、外部のCIツールまたはスクリプトを使用してメールを処理するのが最適でしょう。 –

1

質問は少し古いですが、誰かがまだ別の解決策を必要としている可能性があります。その目的のためにプラグインを作成しました。 plugin's page at github.comをご覧ください。 Multipart-alternative MimeMessagesは実装されていません(その理由でFAQをご覧ください)。まともなテンプレートもありますが、添付ファイル付きのテキストメールを送信したいのであれば、そのトリックを行うべきです。

私はmojo.codehaus.orgにそれを提出する予定ですので、gId。現時点では、あなた自身でコンパイルする必要があります。ご迷惑をおかけして申し訳ありません。

1

非常にカスタマイズ可能なPostman mail pluginもあります。テスト結果を送信するオプション、またはソースファイルを指定する任意のHTMLを送信するオプションがあります。 Here'sどのように設定するべきかを説明する良いスレッドです。

関連する問題