3

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

现在 Spring Boot 采用 jar 封装,如何做一些共享的 web 资源呢?

那就是对com.company.shared.web模块的依赖,例如,图像 /com.company.shared.web/src/main/resources/static/images/background-image.png
如何使该图像可用于在主模块中运行 Spring Boot 应用程序?Maven 标准依赖解析将只提供 Java 类。

PS 类似的问题,但对于 .war 包装是Spring Boot 和 Maven 战争覆盖并没有解决https://github.com/spring-projects/spring-boot/issues/1030

4

1 回答 1

5

Maven 依赖插件

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

完整示例项目

在这个示例项目中,您有一个 Parent POM,后跟两个 Jar 打包的 Maven 模块。

  • Web-App - Spring Boot 应用程序,可执行 Jar,使用 Web-Library 作为依赖和 Maven 依赖插件从 Web-Library 中提取静态文件并将它们复制到自己的静态目录
  • Web-Library - 一个包含静态资源的库 Jar,例如要与其他模块(例如 Web-App)共享的 css 和 javascript 文件

说明

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

浏览到 localhost:8080 并注意到 style.css 和 script.js 已加载,它们来自 Web-Library 模块。

于 2016-06-16T16:22:49.710 回答