Spring 启动共享网络模块(jar 文件覆盖?)

Spring Boot shared web modules (jar file overlay?)

在使用 .war 输出进行 Web 开发之前,可​​以选择模块化 war 覆盖 http://maven.apache.org/plugins/maven-war-plugin/overlays.html

现在Spring引导采用jar包,如何制作一些共享的网页资源?

那是对 com.company.shared.web 模块的依赖,例如,图像 /com.company.shared.web/src/main/resources/static/images/background-image.png
如何使此映像可用于主模块中的 运行 Spring 启动应用程序? Maven 标准依赖项解析将仅使 Java 类 可用。

P.S。 类似的问题,但是对于 .war 包装是 Spring Boot & Maven war overlay and not resolved https://github.com/spring-projects/spring-boot/issues/1030

Maven Dependency Plugin

您可以使用此插件解压jar依赖包并将文件复制到另一个目录。

Full Sample Project

在此示例项目中,您有一个父 POM,后跟两个 Jar 包装的 Maven 模块。

  • Web-App - Spring 启动应用程序,可执行 Jar,使用 Web-Library 作为 Depdenency 和 Maven Depedency Plugin 从 Web-Library 中提取静态文件并将它们复制到它自己的静态目录
  • Web-Library - 包含静态资产的库 Jar,例如 css 和 javascript 文件,这些文件将与其他模块共享,例如 Web-App

说明:

mvn clean package
java -jar web-app/target/web-app-0.0.1-SNAPSHOT.jar

浏览至 localhost:8080 并注意 style.css 和 script.js 已加载,它们来自网络图书馆模块。