Как отправить уведомление по электронной почте для сборки Maven - PullRequest
3 голосов
/ 07 августа 2009

Существует ли простой способ отправлять уведомления по электронной почте в Maven для каждой сборки без внешних инструментов CI, как в Ant?

Ответы [ 5 ]

4 голосов
/ 07 августа 2009

Если 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. Страница установки показывает, насколько легко работать. Сервер непрерывной интеграции звучит помпезно и по-корпоративному, но Хадсон очень прост.

2 голосов
/ 07 августа 2009

Я настоятельно рекомендую использовать инструмент CI для управления этим для вас, мне лично нравится настраивать, какие электронные письма будут отправляться в сборке, чтобы избежать спама. Например, уведомлять только о сбое сборки или возобновлении работы, а не о каждом сбое.

Если вы уверены, что это правильный подход, вы можете использовать maven-changes-plugin для отправки электронного письма по каждой сборке. Вы можете настроить почтовый шаблон со скоростью и привязать выполнение целей к соответствующему этапу, чтобы он отправлялся тогда, когда вы этого хотите.

Я бы также поместил конфигурацию в профиль, чтобы она отправлялась, когда вы хотите, чтобы она была (т.е. когда профиль активен).

Конфигурация выглядит примерно так:

<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>
1 голос
/ 15 ноября 2013

Существует также очень настраиваемый Почтовый плагин , который дает вам возможность отправлять результаты теста или даже произвольный html с указанием исходного файла. Вот хорошая ветка, объясняющая, как это должно быть настроено.

1 голос
/ 28 марта 2012

Хотя вопрос немного старше, возможно, кому-то все еще нужно другое решение: я создал плагин именно для этой цели. Загляните на страницу плагина на github.com . Многочастные альтернативные MimeMessages не реализованы (взгляните на FAQ по причинам), а также достойные шаблоны, но пока вы просто хотите отправить текстовое сообщение с вложениями, это должно быть трюк.

Я планирую отправить его на mojo.codehaus.org, отсюда и GID. На данный момент вы должны скомпилировать его самостоятельно - извините за это неудобство.

0 голосов
/ 07 августа 2009

Я не использую Maven, но я думаю, что вы можете сделать это с помощью плагина .

...