Eclipse WTP / m2eclipse - не может ни чистить, ни публиковать в tomcat - PullRequest
4 голосов
/ 08 марта 2012

Я работаю над довольно сложным проектом (мультимодуль Java / Spring / Maven) с наложениями WAR в Eclipse Indigo Java EE (интенсивно использующий m2eclipse) в Ubuntu 11.10 / 64bit

Все хорошо до утра: я больше не могу чистить / публиковать в tomcat:

Publishing failed
Could not delete <directory> May be locked by another process.

Я могу легко удалить эти файлы вручную (но tomcat по-прежнему не может публиковать), и я не могу выяснить, какой процесс может его заблокировать (linux: lsof <directory>)

Я попробовал несколько вещей в Eclipse: удалил проекты (работает потом), снова добавил (та же проблема), удалил конфигурацию сервера, удалил конфигурацию tomcat, обновил затмение, запустил затмение с -clean, переместил каталог сервера из папки плагина, откатил проект до ветки, которая точно работала на днях ...

Как и было сказано: до вчерашнего дня все было хорошо. Я обнаружил, что это проблемы здесь , с кем-то, кто недавно столкнулся с такой же проблемой Погуглить вокруг мало что дает. У некоторых ребят были похожие проблемы, которые они «исправляли», сильно удаляя / воссоздавая конфигурации сервера. Пробовал это как минимум 10 раз.

Те же проблемы на компьютере коллеги с linux - он вчера настроил свою систему и сразу же столкнулся с ней.

Я нашел это сообщение об ошибке m2e-wtp, которое может быть связано.

Обновление : я уверен, что это сочетание оверлея WAR и этой сборки Maven Integration для WTP: 0.15.1.20120208-1300 На самом деле пытается снизить до 0,14 ...

Ответы [ 3 ]

5 голосов
/ 08 марта 2012

Это был плагин в сочетании с наложением WAR.Исправлено в этой ночной сборке: http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-e37/all/repo/ (версия 0.16.xxx)

Я видел, что этот URL http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-staging/all/repo/ предоставляет версию 15.2.xxx, которая может быть лучше (первая)попробуйте, так как я не знаю, какие другие проблемы будут появляться с 16.xxx по ночам ...

2 голосов
/ 08 марта 2012

Я не вижу простого решения. Что вы можете попробовать:

Создайте конфигурацию запуска Eclipse, чтобы вы могли отлаживать Eclipse от себя. Посмотрите источники WTP, чтобы узнать, откуда пришло сообщение об ошибке, и установите точку останова.

Получить копию плагина и изменить код, чтобы перечислить файлы в каталоге, когда он не может удалить их. Мне кажется, что какой-то процесс (например, ресурс, скопированный из m2e) копирует файлы в каталог, в то время как другой плагин пытается выполнить повторное развертывание.

Тем не менее, я отказался от развертывания Tomcat и WAR. Это слишком медленно и слишком подвержено ошибкам. Для всех моих проектов я использую встроенный сервер Jetty, который запускаю из Eclipse. Причины:

  • Сервер Jetty получает тот же путь к классам, что и компилятор. Нет необходимости тратить время на копирование вещей.
  • Запускается намного быстрее (Jetty: 5 с, Tomcat с развертыванием: 45 с)
  • Сервер Jetty является обычным Java-приложением, поэтому мне не нужно настраивать удаленную отладку
  • Я могу запустить тот же сервер из модульного теста
  • Я могу настроить Jetty, когда он должен перезагрузиться
  • Не связывайтесь с файлами конфигурации XML
0 голосов
/ 16 января 2015

это сработало для меня:

1. go to server tab. 
2. Double click on tomcat server.
3. in the tomcat config window check server modules without publishing
4. start the server. (this will replace your project deployed in tomcat)
5. stop the server.
6. in the tomcat config window Uncheck server modules without publishing.
7. start the server.
...