#spring #vue.js #deployment #web-applications #build
Вопрос:
Я пытаюсь встроить свое веб-приложение в войну, которая должна содержать как мой интерфейс (написанный на Vue NuxtJS), так и мой бэкэнд (Spring). Архитектура моего приложения выглядит следующим образом:
|
- src
|
-main
|
- frontend
|
- dist
|
- components
|
- pages
|
...
|
...
|
- webapp
|
- WEB-INF
| my backend files
Я пытаюсь использовать этот интерфейс-maven-плагин.
Это моя конфигурация сборки в pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<warName>MyApp</warName>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.12.0</version>
<executions>
<execution>
<id>Install node and yarn</id>
<goals>
<goal>install-node-and-yarn</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<nodeVersion>v15.13.0</nodeVersion>
<yarnVersion>v1.22.10</yarnVersion>
</configuration>
</execution>
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>Copy Vue frontend into Spring Boot target static folder</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/classes/static</outputDirectory>
<resources>
<resource>
<directory>src/main/frontend/dist</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
После запуска mvn clean package
я проверил свою целевую папку и заметил , что мои файлы интерфейса скопированы из src/main/frontend/dist в target/MyApp/WEB-INF/classes/static.
Однако, когда я развертываю свою войну в Tomcat, я не могу визуализировать свои страницы интерфейса.
Если я правильно понял, я должен увидеть свою главную index.html файл на локальном хосте:8080/MyApp. Этого не происходит, и я также не вижу других страниц.
Серверная часть работает должным образом (на локальном хосте:8080/MyApp/api/MyAPI).
Я явно делаю что-то не так. Кто-нибудь может помочь мне определить проблему? Спасибо.