5 Stimmen

Wie man eine E-Mail-Benachrichtigung für Maven-Builds verschickt

Gibt es eine einfache Möglichkeit, E-Mail-Benachrichtigungen in Maven für jeden Build ohne externe CI-Tools zu versenden, genau wie Ant?

4voto

Rich Seller Punkte 81404

Ich würde dringend empfehlen, ein CI-Tool zu verwenden, um dies für Sie zu verwalten. Ich persönlich konfiguriere gerne, welche E-Mails beim Build versendet werden sollen, um Spamming zu vermeiden. Zum Beispiel nur benachrichtigen, wenn der Build beginnt, fehlzuschlagen oder wieder zu funktionieren, nicht bei jedem Fehler.

Wenn Sie sicher sind, dass dies der richtige Ansatz ist, können Sie die maven-Änderungs-Plugin um bei jedem Build eine E-Mail zu senden. Sie können Anpassen der E-Mail-Vorlage mit Velocity und binden Sie die Ausführung der Ziele an eine geeignete Phase, damit sie zum gewünschten Zeitpunkt gesendet wird.

Ich würde die Konfiguration auch in ein Profil aufnehmen, damit sie dann gesendet wird, wenn Sie es wünschen (d. h. wenn das Profil aktiv ist).

Die Konfiguration sieht in etwa so aus:

<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>

0 Stimmen

Vielen Dank für Ihre Informationen und Empfehlungen. Soweit ich das verstanden habe, ist der Inhalt, der vom Maven Changes Plugin gesendet wird, der in der Vorlage definierte. Aber was ich genau will, ist die Ausgabe von Maven Build in der Konsole. Da ich neu in Maven bin, und mit früheren Kenntnissen von Ant build, fühle ich mich einfach un-bequem nicht in der Lage zu finden, wie man dies in Maven nach Stunden der Suche in Google zu erreichen. Vielleicht ist dies nicht nur Maven gewünscht zu tun. Aber trotzdem möchte ich mich nicht wundern, warum Maven dies nicht tut, indem es E-Mail-Benachrichtigungen versendet.

0 Stimmen

Ich werde später versuchen, ein CI-Tool zu verwenden, und möchte nur wissen, warum Maven keine E-Mail-Benachrichtigungen versendet, wie es Ant tut.

0 Stimmen

Das Problem bei der Arbeit mit Maven ist, dass der Build noch nicht abgeschlossen ist. Sie könnten das exec-Plugin t verwenden

4voto

Robert Munteanu Punkte 64955

Wenn CI keine Option ist, würde ich einen einfachen Skript-Wrapper verwenden:

mvn install 2>&1 | tee build.log && cat build.log | mail -s 'Maven build output' user@example.com && rm -f build.log

Wenn Sie sich für ein CI-Tool entscheiden, würde ich Ihnen Hudson empfehlen. Die Installationsseite zeigt, wie einfach es zu bedienen ist. Server für kontinuierliche Integration klingt pompös und unternehmensmäßig, aber Hudson ist ganz einfach.

0 Stimmen

T

0 Stimmen

@

0 Stimmen

@

1voto

Markus W Mahlberg Punkte 18651

Obwohl die Frage schon etwas älter ist, kann es sein, dass jemand noch eine andere Lösung braucht: Ich habe ein Plugin für genau diesen Zweck erstellt. Werfen Sie einen Blick auf die Seite des Plugins auf github.com . Multipart-alternative MimeMessages sind nicht implementiert (sehen Sie sich die FAQ für die Gründe), sowie eine anständige Vorlage, aber solange Sie einfach eine Text-Mail mit Anhängen senden wollen, sollte es den Trick tun.

Ich plane, es bei mojo.codehaus.org einzureichen, daher die gId. Im Moment müssen Sie es selbst kompilieren - entschuldigen Sie die Unannehmlichkeiten.

1voto

Innokenty Punkte 2407

Außerdem gibt es eine hochgradig anpassbare Postman-Mail-Plugin die Ihnen die Möglichkeit gibt, Testergebnisse oder sogar eine beliebige HTML-Datei zu senden, die eine Quelldatei angibt. Hier ist einen guten Thread, in dem erklärt wird, wie es konfiguriert werden sollte.

0voto

ire_and_curses Punkte 65821

Ich verwende Maven nicht, aber ich denke, man kann dies mit einer Plugin .

0 Stimmen

T

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X