Запустить команду установки maven из другой команды установки maven - PullRequest
6 голосов
/ 01 октября 2009

Есть ли способ вызвать команду установки maven из другой команды установки maven?

Другими словами, я хотел бы иметь возможность выполнить команду установки maven для проекта maven (в eclipse), и я хочу, чтобы это автоматически вызывало команду установки для другого проекта maven. Это возможно?

Ответы [ 2 ]

4 голосов
/ 02 октября 2009

Как указывалось, maven способ запустить цель (скажем, mvn install) на наборе модулей - это организовать их как многомодульный проект и запустить цель на родительском модуле. За кулисами Maven будет использовать «реактор Maven» для этой работы. Реактор будет вычислять порядок сборки, выполняя топологическую сортировку узлов ориентированного графа, построенного по зависимости зависимостей между модулями. Этот график строится путем просмотра тегов <modules> и <dependencies> в poms.

Но запуск maven от родителя - не единственный вариант, и maven предлагает больше возможностей для игры с реактором (например, создание проекта и его зависимостей или тех, которые зависят от него):

Проверьте это, это может помочь вам в достижении вашей цели.

4 голосов
/ 01 октября 2009

Способ Maven для «запуска» другой сборки - это определение многомодульной сборки . В родительском проекте pom могут быть указаны модули, которые будут созданы с использованием стандартного жизненного цикла. Таким образом, выполнение mvn install на родительском элементе будет означать, что каждый модуль создается по очереди.

Родитель определен с pom packagin, и будет иметь объявление модулей, подобное этому:

<modules>
  <module>module-a</module>
  <module>module-b</module>
</modules>

В качестве альтернативы можно прикрепить дополнительные артефакты к сборке, чтобы они были развернуты вместе с основными артефактами (предполагая, что они уже упакованы, вы можете использовать build-helper-maven-plugin to прикрепите произвольный файл к вашему pom, чтобы он был развернут с указанным классификатором. Следующая конфигурация прикрепит указанный файл как my-artifact-1.0-extra.jar

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
      <execution>
        <id>attach-artifacts</id>
        <phase>package</phase>
        <goals>
          <goal>attach-artifact</goal>
        </goals>
        <configuration>
          <artifacts>
            <artifact>
              <file>/path/to/extra/file.jar</file>
              <type>jar</type><!--or specify your required extension-->
              <classifier>extra</classifier>
            </artifact>
          </artifacts>
        </configuration>
      </execution>
    </executions>
  </plugin>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...