【问题标题】:Spring Boot shared web modules (jar file overlay?)Spring Boot 共享 web 模块(jar 文件覆盖?)
【发布时间】:2016-10-18 04:03:43
【问题描述】:

在使用 .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 类。

附: 类似的问题,但对于 .war 的包装是 Spring Boot & Maven war overlay 而未解决 https://github.com/spring-projects/spring-boot/issues/1030

【问题讨论】:

  • 如果资源被打包在 JAR 中,那么如果 JAR 是 Spring Boot 应用程序的依赖项,它们也是可用的。

标签: java maven jar spring-boot static-resource


【解决方案1】:

Maven Dependency Plugin

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

Full Sample Project

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

  • Web-App - Spring Boot 应用程序,可执行 Jar,使用 Web-Library 作为 Depdenency 和 Maven Depedency Plugin 从 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 模块。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 2020-11-28
  • 1970-01-01
  • 2018-03-13
  • 2020-12-29
  • 2015-05-01
  • 1970-01-01
相关资源
最近更新 更多