2015-11-28 4 views
-1

Есть ли простой и простой способ запускать и отлаживать простой (уровень обучения) Maven Web App на локальном сервере Tomacat с сервера Eclipse Mars ?.Eclipse Mars - веб-приложение - Tomcat - Maven - Развертывание и отладка

Я разрабатываю веб-приложение, и иногда я могу запускать его, а иногда и нет, и иногда я могу его отлаживать, а иногда и нет. Это немного разочаровывает.

Мое предпочтение заключается в том, чтобы выполнить проект из конфигурации Maven, имеющей цель tomcat:run. Он строит и работает всегда, но он не будет отлаживать, т. Е. Если я помещу точку останова в свой код Java в код сервлета, это не будет достигнуто. (несколько раз это достигается при первом запуске проекта, но потом он не может найти исходный код некоторого файла и останавливается для последующих прогонов ...)

Я также пробовал «Отладка на сервере» ", но тогда в этом случае мне пришлось запустить установку Maven перед запуском проекта или, в противном случае, некоторые классы не будут найдены. И это тоже перестало работать. Он просто не может найти некоторые из классов из src, хотя в конфигурации сборки веб-развертывания исходный код развертывается в WEB-INF/classes.

+0

пожалуйста, не вниз голосовать вопрос без комментариев причины –

+0

причина может быть связана с тем, что некоторые зависимости вводятся Spring, поэтому в некоторых классах нет явной ссылки в коде. Возможно, из-за этого эти классы не развертываются eclipse ... –

+0

одним из дополнительных «обнаружений» является то, что если я начну с scracth, удалив папку .metadata, и я DONT запустил Maven clean или install, «Запустить на сервере »и« Отладка на сервере »работает как. После запуска Maven они перестают работать, поскольку они не могут найти классы из папки src –

ответ

1

(вы, возможно, были downvoted, потому что есть несколько вопросов, сосредоточенные в одно. Я постараюсь ответить на них все, потому что я слишком хорошо знаком с болью)

интеграция Maven в Eclipse, как известно, слоеная когда дело доходит до отладки webapps, даже с MARS. Вы действительно можете использовать tomcat6: run или tomcat7: запустить для webapps. Вот несколько «лучших практик», которые меня устраивают:

  • Всегда выполняйте «чистую» часть цели.
  • Убедитесь, что вы следуете стандартным макетам проекта maven WAR. Вы можете отказаться от этого, но должны быть осторожны, чтобы указать все переопределенные пути для META-INF и т. Д.
  • Когда вы останавливаете/убиваете процесс в Eclipse, вы часто обнаружите, что процесс фактически продолжает работать, но он сам отделился от eclipse.exe как родительский процесс. Вам нужно вручную убить процесс java.exe или вы обнаружите ошибки «порт уже в использовании». ProcessExplorer очень полезен для наблюдения за этим.
  • Когда вы нажмете точку останова, и она говорит, что «источник не найден», есть несколько вещей, которые вы можете попробовать.
    • Добавьте свою установку maven в соответствии с предпочтениями окна - maven/installation. Установите это как значение по умолчанию.
    • В вашей конфигурации запуска убедитесь, что вы используете системную установку вместо встроенной.
    • Когда вы нажмете точку останова, закройте редактор, а затем снова откройте его, щелкнув по точке в дереве отладки.
+0

Спасибо, что для решения проблемы «источник не найден» я переключился на внешнюю установку Maven вместо встроенной, и она сработала! –

0

Таким образом, вы пытаетесь отлаживать проект Maven с целью «котом: запуск» в Eclipse, и приложение разбивается на точках останова, установленных, но вы получаете «Источник не найдены» ошибки.

enter image description here

Выполните следующие шаги, чтобы исправить это:

  1. Перейти к конфигурации отладки
  2. В главной закладке, убедитесь, что вы "Resolve Workspace артефакты" проверили
  3. Марки убедитесь, что базовый каталог установлен как ваш проект maven
  4. На вкладке «Источник» убедитесь, что вы добавили свой проект в качестве «Java Project» или «Workspace» "Или„Проект“

Шаг 4 имеет важное значение, Add -> Java Project/Project и выберите ваш проект

Смежные вопросы