Ошибка плагина Maven - PullRequest
1 голос
/ 08 июля 2010

Я новый пользователь в Maven.У меня мало сомнений.

  1. У меня есть несколько BAT-файлов, которые должны выполняться через maven

  2. Во время выполнения команд по умолчанию мне нужно повторитьсостояние типа «Запущено первое задание»

  3. При сбое задания пользователь должен получить всплывающее сообщение об ошибке и т. д.,

    1. Автоматическое обновление репозитория через maven
    2. Maven вызывает ant для сборки * .war
    3. Копирование нового созданного файла сборки (*. War) в локальную папку с датой / временем
    4. Автоматическая загрузка / развертывание со сборочной машины на сервер
    5. Тестирование определенных URL / продуктов для проверки потока сайта
    6. Отправка почты относительно состояния развертывания

Ниже приведен мой пример pom.xml, который пытается только (a)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.maven</groupId>
  <artifactId>test</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>test</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.1.1</version>
        <executions>
          <execution>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
        <!--echo>Starting CVS Update</echo-->
        <configuration>
          <tasks>
            <exec>
              <directory>D:\</directory>
              <executable>"D:\test.bat"</executable>
              <!--failonerror="true" -->
              <!-- optional -->
              <!--workingDirectory>"cd C:\repo\projects\mcsandbox"</workingDirectory-->   
            </exec>
          </tasks>
        </configuration>
      </plugin>
    </plugins>
  </build> 
</project>

1 Ответ

1 голос
/ 09 июля 2010

Я думаю, что это не ожидаемый ответ, но я не думаю, что вы на правильном пути, и я не вижу смысла использовать Maven так, как вы хотели бы его использовать.Из вашего описания у меня сложилось впечатление, что вы на самом деле не принимаете Maven, а скорее пытаетесь вставить в него что-то существующее, и, поверьте мне, это не самый простой способ начать работу с Maven:

  • Это добавит дополнительный уровень сложности.
  • Это требует более глубокого понимания того, как работает maven, чем "просто" принять его.
  • Вы собираетесь сражаться против инструмента (и есть хорошие шансы, что инструмент победит).
  • Это создаст больше проблем, чем выгод.

Я действительно не знаю, гденачать, поэтому я просто попытаюсь сначала быстро охватить ваши очки:

У меня есть несколько BAT-файлов, которые должны быть выполнены через maven

Это возможно, но это не такна самом деле путь Maven (в зависимости от логики, вы должны переместить его в Maven или оставить его вне maven), и я не думаю, что он будет очень надежным (хотя может и ошибаться).Кроме того, это уже требует некоторых знаний о жизненном цикле сборки (где можно перехватывать вещи) и конфигурации плагинов.И из того, что я видел (я не хочу быть грубым), у вас его нет.

При выполнении моих команд по умолчанию мне нужно отобразить состояние типа «Запущено первое задание»"

Это не так, как с Maven.Maven не процедурный, как Ant, Maven имеет соглашения, Maven декларативный, Maven имеет жизненный цикл.

При сбое задания пользователь должен получить всплывающее сообщение об ошибке и т. Д.,

Пользователь?Неожиданно возникнуть?Maven на самом деле не нацелен на конечных пользователей, Maven - это инструмент разработчика, и в случае ошибки вы получаете сообщение в консоли.

Автоматическое обновление репозитория с помощью maven

Вы имеете в виду обновление CVS?Это не невозможно, но обычно это не работа Maven (это скорее задача механизма непрерывной интеграции).

Maven вызывает ant для сборки * .war

Это возможно с помощью Плагин Maven Antrun , но это не дух и может противоречить некоторым правилам Maven (например, один артефакт на проект).Кроме того, Maven не будет волшебным образом знать о вещах, созданных Ant.Почему бы вам просто не придерживаться Ant?

Копирование нового созданного файла сборки (*. War) в локальную папку с датой / временем

Возможно.Но по умолчанию это не так.

Автоматическая загрузка / развертывание со сборочной машины на сервер

У Maven есть плагины (например, Cargo ), которыеможет помочь в этом, но вы должны сказать ему.

Тестирование определенных URL / продуктов для проверки потока сайта

Сам Maven этого не сделает.Но он может запускать (интеграционные) тесты, выполняя это.

Отправка почты о состоянии развертывания

Это не входит в обязанности maven (больше это задача механизма непрерывной интеграции).


Мое общее ощущение, что вы слишком много думаете об Ant и, возможно, слишком многого ожидаете от Maven.Maven другой, он не работает так, как вы описали, он не работает как Ant.Я бы рекомендовал либо полностью перейти на Maven и принять его философию, либо придерживаться своего текущего решения Ant (и, возможно, рассмотреть возможность использования Maven Ant Tasks или Ivy для использования таких вещей, как управление зависимостями, развертывание артефактов).

См. Также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...