1: Как я могу развернуть и запустить приложение из Intellij в локальном Tomcat вместо встроенного. У вас уже есть область действия, поэтому встроенный кот не будет включен в ваш артефакт.IntelliJ имеет возможность загружать предоставленные зависимости на пути к классам при запуске.(он называется Include dependencies with "Provided
scope "и может быть найден на вкладке" Конфигурация ", а затем в разделе" Окружение "вашей конфигурации весеннего запуска.
Вместо использования конфигурации весеннего запуска вы также можете самостоятельно установить tomcat локально.и используйте плагин сервера приложений для управления им и развертывания на нем.
Создайте новую конфигурацию запуска для "Tomcat", а затем выберите "Локальный". Здесь вы сможете настроить свой локальный экземпляр tomcat, чтобы он зналгде его развернуть.
2: Есть ли лучшая конфигурация для сборки внешнего интерфейса и его автоматического развертывания с внутренним модулем на Intellij?
Я не могу сказать, если это лучше, но у меня есть аналогичная установка, использующая другой подход. Не стесняйтесь проверить мой репо здесь: https://github.com/phazebroek/tour-of-rockstars Клиентский модуль содержит приложение углового фронтенда, а API - это пружина-boot backend. Клиент использует frontend-maven-plugin
для его сборки и помещает выходные данные в целевой путь. Затем мой модуль API использует плагин maven-resources-plugin
n скопировать их в статическую папку моей целевой папки весенней загрузки во время фазы проверки maven.Результатом этого является то, что мое угловое приложение упаковано и включено в мой war-файл загрузочного приложения backend spring в статической папке, чтобы я мог доставлять его содержимое с помощью spring.Так, например, если вы запустите свое приложение на: 8080, вы сможете подключиться к своему угловому приложению через тот же порт.Например: 8080 / app / foo.
Обратите внимание, что вы должны добавить к конечным точкам REST префикс / api, например, чтобы избежать коллизий с вашими угловыми видами :-) Если у вас есть конечная точка REST, называемая / foo, например,но у вас также есть угловой виджет с URL / Foo, он будет сталкиваться.(Я еще не исправил эту проблему для этого репозитория ...)
Дополнительное примечание: вызов backind api из приложения angular в автономном режиме на другом порту
Кстати, контроллеры содержат аннотацию @CrossOrigin(origins = "*")
, разрешающую запросы, поступающие от углового приложения, когда оно запускается как отдельное приложение, на другой порт.Это должно использоваться только в режиме разработки!