Вызовите Maven-Module Build от IntelliJ
Мне было интересно, знает ли кто-нибудь способ вызвать конкретный модуль модуля Maven из IntelliJ, который также будет создавать (или использовать уже скомпилированные классы) из модулей, от которых он зависит.
Так, например, если бы я хотел только построить модуль "Модель" на картинке, мне кажется разумным щелкнуть по нему шаг пакета. Но на самом деле он вызывает шаг mvn package
внутри этого конкретного модуля, а не mvn -am -pl module-name
из корневого модуля, который также создает все зависимости.
Так есть что-то, чего я просто не знаю?
удалена мертвая ссылка ImageShack
Ответы
Ответ 1
Я делаю это так (Идея 8.1.4)
- Открыть диалог запуска (shift-f10 на окнах)
- Нажмите + и выберите Maven, чтобы добавить конфигурацию сборки Maven
- Заполните форму, добавив
- 1 рабочий каталог
- 2 опции командной строки maven
- 3 maven goal
- 4 профилей
Это не что иное, как запуск из командной строки. Это то, что я предполагаю, что вы хотите.
Ответ 2
Вы хорошо знаете командную строку mvn! Чтобы поместить эту командную строку в IDEA, щелкните правой кнопкой мыши на вашем корневом проекте, одним из вариантов будет "Создать... [пакет]".
Сделайте эти изменения:
- установите для имени что-то вроде "Make Model [install]"
- В поле "Цели" введите свою командную строку, то есть "-am -pl model install"
Я знаю, что это не строго цели, но, похоже, они передаются непосредственно на maven. (Протестировано в IDEA 9.0.1)
Когда вы запустите эту команду, теперь она изменит Model и модули. Не менее полезно использовать "-amd", чтобы все зависимые модули могли проверить, что изменения в Модели не нарушили другие модули. Необходимость создания команд Run не такая элегантная, как встроенный пользовательский интерфейс, но вы можете связать эти команды с горячими клавишами для быстрого доступа.
Надеюсь, это поможет!
MDMA
PS: Маленький в сторону. Пакет в настоящее время является вашей целью построения по умолчанию - это может работать не так, как предполагалось, с многомодульными сборками, поскольку последние встроенные классы недоступны для зависимых модулей. Использование установки в качестве цели по умолчанию рекомендуется для обеспечения того, чтобы наиболее недавно созданные версии артефактов были используемые иждивенцами. Если вы обеспокоены тем, что установка может добавить сломанный артефакт в локальное репо и разбить все ваши локальные сборки, используйте отдельный локальный репо для каждого проекта (используйте собственный файл settings.xml.)