Переезд в Maven из GNUMake - PullRequest
       7

Переезд в Maven из GNUMake

5 голосов
/ 23 октября 2010

Я долгое время пользовался системой сборки Make, но я решил начать изучать систему сборки Maven.Несмотря на то, что я прочитал большинство онлайн-документов, ни одна из них не дает мне аналогий, которые я ищу.Я понимаю жизненный цикл системы, но не вижу ни одной ссылки для компиляции пошаговых зависимостей.Например, я хочу сгенерировать грамматику JFlex как часть шага жизненного цикла компиляции.В настоящее время я не вижу способа сделать этот шаг этапом предварительной компиляции.Документация кажется ограниченной на этом.В общем, концепция поэтапных зависимостей, похоже, встроена в Maven и требует плагина для любых изменений.Это тот случай?Чего мне не хватает, потому что в настоящее время система сборки Maven кажется очень ограниченной в том, как вы можете настроить шаги компиляции.

Ответы [ 2 ]

4 голосов
/ 23 октября 2010

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

Существует даже официальный плагин JFlex Maven .

По возможности, найдите кого-нибудь, кто имеетсделал плагин Maven делать то, что вы хотите.Даже если он не на 100% прав, он может по крайней мере дать вам представление о том, как заставить maven что-то делать.

Минимальная конфигурация

ЭтоКонфигурация генерирует Java-код анализатора для всех файлов грамматики ( .jflex, * .jlex, * .lex, .flex), найденных в src / main / jflex / и его подкаталогах.Имя и пакет сгенерированного исходного кода Java определены в грамматике.Сгенерированный исходный код Java помещается в target / generate-source / jflex в подкаталогах в соответствии с соглашением Java по именам пакетов.pom.xml

<project>
  <!-- ... -->
  <build>
    <plugins>
      <plugin>
        <groupId>de.jflex</groupId>
        <artifactId>jflex-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <!-- ... -->
  </build>
  <!-- ... -->
</project>

Это похоже на мавенский способ делать вещи.Поместите ваши вещи в нужные папки (src / main / flex), и этот плагин автоматически встроит их в ваш проект.Если вы хотите делать более интересные вещи, есть несколько вариантов .но Maven - все о предпочтении соглашения по конфигурации.

0 голосов
/ 23 октября 2010

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

...