У меня есть простой весенний загрузочный проект, который имеет структуру maven, такую как:
project
- backend (spring boot)
- frontend (angular)
Я настроил проект так, что * классы IT.java запускаются во время фазы тестирования интеграции maven, и они успешно тестируютREST API Spring Boot с базой данных H2.
Я пытаюсь настроить проект так, чтобы мои тесты на огурец, которые взаимодействуют с браузером, выполнялись на этапе интеграционных тестов проекта.Тесты на огурец запускаются нормально, но терпят неудачу по той простой причине, что угловые файлы не обрабатываются приложением весенней загрузки при запуске.
В backend / src / main / resources / static у меня есть простой индекс.html файл.Когда тесты на огурцы запускаются, они открывают браузер, и я вижу содержимое этого файла.
В модуле backend (war) я копирую содержимое dist из угловой сборки ...
<build>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>some.package.Boot</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven.war.plugin.version}</version>
<configuration>
<warName>${root.context}</warName>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<resources>
<resource>
<directory>../frontend/<appname>/dist/frontend</directory>
<!--<targetPath>src/main/resources/static</targetPath>-->
<targetPath>static</targetPath>
</resource>
</resources>
</build>
В результирующем файле war угловые файлы упакованы в WEB-INF / classes / static / .
Как вы заметили выше, я также пытался скопировать угловой код в resources / static, ноэто помещает файлы в target / classes / src / main / resources / static, так что это неправильный подход!
Тем не менее, тесты на огурец по-прежнему видят только содержимое файла index.html из src /main / resources / static при запуске.
Потенциально мы могли бы переместить угловое приложение в то же дерево src, что и код java / webapp, но это не вариант.
Как мне убедитьSpring Boot использует войну в качестве цели, а не то, чем она кажется должна заниматься и обслуживать контент из источника?
Версии: Java 11
Плагин войны Maven 3.2.2
Определена версия Springbooted в родительском pom как 2.1.3.RELEASE
- spring-boot-starter-web
- spring-boot-starter-data-rest
- spring-boot-starter-data-jpa
- spring-boot-starter-data-jdbc
- spring-boot-starter-tomcat (не уверен, что он мне нужен)