Использовать путь к классу модуля ItelliJ Idea при запуске цели Maven из ItelliJ Idea - PullRequest
4 голосов
/ 26 октября 2010

Допустим, у меня есть два maven проекта: moduleA и moduleB.

moduleA зависит от moduleB в своем файле pom.xml.

Я использую IntelliJ Idea ,и у меня есть окно инструментов ' Maven Projects ', где у меня есть оба этих проекта Maven.

И оттуда можно запустить цели плагинов maven Оттуда: я открываю 'Maven Projects' -> moduleA -> Plugins -> jetty -> jetty: run.Java запущена, модуль B находится в classpath , но он находится в Maven локальном репозитории !

Так что, если я что-то изменю в источниках moduleB и выполню причину:запустить из Idea, я не увижу изменения кода, пока модуль B не будет установлен с mvn install .

Есть ли какое-либо решение в Idea, например, без mvn install как-нибудь запустить maven цели с идеей-модулем classpath ?

Ответы [ 2 ]

3 голосов
/ 27 октября 2012

Этот плагин IDEA больше не разрабатывается, потому что IntelliJ теперь включает в себя свою собственную функцию запуска конфигурации Jetty.

Вот что сработало для меня с многомодульным проектом Maven: В Файле, Структуре проекта, Модулях у меня есть все модуликомпилировать по тому же выходному пути («Использовать выходной путь компиляции модуля»).Я выбрал путь "... WEB-INF \ classes" в папке папки Jetty Deployment.Тогда я также должен сказать IDEA не очищать выходные каталоги при компиляции.В противном случае каждый модуль, который компилируется (один за другим), очищает классы от предыдущего.Настройки, Компилятор, снимите флажок «Очистить каталог вывода при перестроении».

Кроме того, мне пришлось изначально поместить все мои внешние (maven) банки зависимостей в папку «... WEB-INF \ lib».

Да, это хак, но работает.Если у кого-то есть лучшее, более чистое решение, мне было бы интересно узнать.

3 голосов
/ 27 октября 2010
  1. Я предлагаю использовать плагин Jetty Integration IDEA для запуска автономной пристани http://github.com/codebrewer/intellij-idea-jetty-integration-plugin

  2. если вы все еще хотите использовать jetty: run, вы можете указать IDEA выполнить mvn install для moduleB: Выполнить -> Изменить настройки -> выбрать конфигурацию запуска maven -> вкладка Конфигурация -> Перед запуском (внизу) -> Выполнить цель Maven

...