Вызов сборки Maven-модуля от IntelliJ - PullRequest
14 голосов
/ 27 апреля 2010

Мне было интересно, знает ли кто-нибудь способ вызова конкретной сборки модуля Maven из IntelliJ, которая также будет собирать (или использовать уже скомпилированные классы) модули, от которых она зависит.

Так, например, если я хочу построить только модуль «Модель» на рисунке, мне кажется разумным щелкнуть по шагу пакета на нем. Но что он на самом деле делает, это вызывает шаг mvn package внутри этого конкретного модуля, а не mvn -am -pl module-name из корневого модуля, который также строит все зависимости.

Так есть что-то, чего я просто не знаю?

удалена мертвая ссылка ImageShack

Ответы [ 2 ]

5 голосов
/ 28 апреля 2010

Я делаю это так (Идея 8.1.4)

  • Открыть диалог запуска (shift-f10 на окнах)
  • Нажмите + и выберите Maven , чтобы добавить конфигурацию сборки Maven
  • Заполните форму, добавив
  • 1 рабочий каталог
  • 2 опции командной строки maven
  • 3 гола
  • 4 профиля

Это ничем не отличается от запуска из командной строки . Что, как я полагаю, вы хотите.

2 голосов
/ 28 апреля 2010

Вы хорошо знаете командную строку mvn! Чтобы поместить эту командную строку в IDEA, щелкните правой кнопкой мыши по корневому проекту, один из вариантов будет «Создать ... [пакет]».

Сделайте эти правки:

  1. установить имя на что-то вроде "Make Model [install]"
  2. В поле целей введите вашу командную строку, т.е. "-am -pl model install"

Я знаю, что это не совсем цели, но, похоже, они передаются непосредственно в Maven. (Протестировано в IDEA 9.0.1)

Когда вы запустите эту команду, она теперь создаст Model - и модули, от которых она зависит. Не менее полезным является -amd, чтобы все зависимые модули проверяли, что изменения в Model не сломали другие модули. Необходимость создавать команды запуска не так элегантна, как встроенный пользовательский интерфейс, но вы можете связать эти команды с горячими клавишами для быстрого доступа.

Надеюсь, это поможет! MDMA

PS: немного в сторону. Пакет в настоящее время является вашей целью сборки по умолчанию - он может работать не так, как задумано для многомодульных сборок, поскольку последние собранные классы недоступны для зависимых модулей - рекомендуется использовать установку в качестве цели по умолчанию, чтобы гарантировать, что самые последние собранные версии артефактов используется иждивенцами. Если вы обеспокоены тем, что установка может добавить поврежденный артефакт в локальное хранилище и сломать все ваши локальные сборки, используйте отдельное локальное хранилище для каждого проекта (используйте пользовательский файл settings.xml.)

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