我的项目结构如下:
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
的情况下构建此应用程序,它的static/
文件夹中包含两个Angular客户端。
但是,当前Spring Boot应用程序的pom.xml
必须了解客户端,我想将其移至父级。
这里我缺少一些Maven技能。
这应该发生:
static/
我当前正在使用maven-resources-plugin
复制客户端内容,但我注意到存在问题-如果尚未构建客户端,则它将不会复制任何内容到最终的jar
中,这意味着Web客户端缺少部署。
现在,这是父级的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>
答案 0 :(得分:0)
将client-1
和client-2
添加为对server
项目的依赖。这样可以确保在服务器和文件可用之前就已经建立了客户端。