У меня есть такая структура проекта:
parent/
server/ - Spring Boot Application
pom.xml
client-1/ - Angular Web Application
pom.xml
client-2/ - Angular Web Application
pom.xml
pom.xml
Я могу создать это приложение, где Spring Boot Application - это jar
, которое содержит два Angular-клиента в папке static/
.
Однако в настоящее время pom.xml
приложения Spring Boot Application должно знать о клиентах, и я хотел бы перенести это в родительский каталог.
Здесь мне не хватает некоторых навыков Maven.
Вот что должно произойти:
- Создание веб-клиентов
- Сборка Spring Boot Application
- Копирование веб-клиентов на
static/
В настоящее время я использую maven-resources-plugin
для копирования содержимого клиента, но я заметил, что есть проблема - если клиенты еще не собраны, то ничего не будет скопировано в окончательный jar
, что означает, что веб-клиенты отсутствует для развертывания.
Прямо сейчас, это pom.xml
родителя:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mz</groupId>
<artifactId>mz-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>mz-server</module>
<module>mz-admin</module>
<module>mz-web</module>
</modules>
</project>
Как мне это сделать?
Ниже показано, как я сейчас строю jar
, используя maven-resources-plugin
. Но, как уже говорилось, в этом случае серверный проект должен знать о клиентах, а также это не гарантирует, что клиенты получают сборку в первую очередь.
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${build.directory}/classes/static/</outputDirectory >
<resources>
<resource>
<directory>../mz-admin/dist</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-web</id>
<phase>validate</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${build.directory}/classes/static/</outputDirectory >
<resources>
<resource>
<directory>../mz-web/dist</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>