Основной вопрос:
Кто-нибудь еще сталкивался с проблемами при развертывании в Tomcat, когда зависимости также открываются в Eclipse как дочерние проекты?
История:
Eclipse с плагином Maven достаточно умен, чтобы автоматически настраивать часть конфигурации развертывания конфигурации, а это означает, что если у вас есть зависимость в вашем веб-проекте и она также открыта в eclipse, то вы получите (среди прочих) два записи в списке сборки развертывания:
Один ссылается на дочерний проект и который выводит на WEB-INF/lib/sister-project-1.0.0-SNAPSHOT.jar
И второй, ссылающийся на обычную запись Maven Dependencies, которая выводит в WEB-INF/lib/
Это, однако, не похоже на работу: /
то есть. фляга от родственного проекта не построена / развернута на сервере tomcat, что конечно приводит к старому доброму ClassNotFoundException
.
Теперь, в прошлом, клянусь, это сработало, но по какой-то причине это не так в? версия затмения (у меня работает Version: 2018-09 (4.9.0)
).
Текущее решение:
Вместо этого вы запускаете быструю maven-install для дочернего проекта, а затем закрываете проект. Это позволяет Eclipse понять, что она должна использовать эту зависимость как обычную зависимость maven (из вашего локального .m2), и, поскольку вы только что установили ее, она имеет самую последнюю версию вашего кода.
Сборка развертывания автоматически обновляется и имеет только:
- Запись, ссылающаяся на обычную запись Maven Dependencies, которая выводит в
WEB-INF/lib/
(Ссылка на проект удаляется, как и ожидалось).
В этом случае он идет вперед, находит jar как часть других зависимостей maven и успешно развертывает его на сервере.
Одна теория, которая у меня есть, состоит в том, что неправильно хотеть, чтобы выход дочернего проекта (когда он открыт) был .jar, и вместо этого должен / мог бы перенаправлять его на WEB-INF/classes/
вместе с текущими проектами файлы классов.
Другая теория, аналогичная вене, состояла бы в том, что что-то странное в дочернем проекте, где eclipse не может получить файл .jar из него для вывода.
Надеюсь, кто-то еще сталкивался с такой же ситуацией раньше. :)