Как получить затмение для развертывания зависимого проекта Maven на Tomcat, когда также открыт? - PullRequest
1 голос
/ 20 марта 2019

Основной вопрос:

Кто-нибудь еще сталкивался с проблемами при развертывании в 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 из него для вывода.


Надеюсь, кто-то еще сталкивался с такой же ситуацией раньше. :)

1 Ответ

0 голосов
/ 20 марта 2019

Для меня это работает, как и ожидалось в Eclipse 2018-12, а также в 2018-09: зависимость при открытии в рабочей области строится в .jar и развертывается в WEB-INF/lib.

настройку для этого вы должны проверить для каждого участвующего проекта:

Project properties (Alt+Return) -> Maven -> [x] Resolve dependencies from Workspace projects,

Когда все странно, это также часто помогает сделать обновление проекта Maven:

Open the project context menu -> Maven -> Update Project -> All.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...