【问题标题】:packaging a spring application(JAR) inside a spring boot application在 Spring Boot 应用程序中打包 Spring 应用程序(JAR)
【发布时间】:2020-01-19 15:04:27
【问题描述】:

Spring 应用程序“A”打包为 JAR(使用 maven),应用程序“A”的 POM 文件包含一些定义的特定 maven 依赖项。

在另一个打包为JAR的spring boot应用程序“B”中,添加了应用程序“A”的依赖,但是在执行“B”的时候,对于应用程序中提到的依赖,它抛出了一些ClassNotFound/NoClassDef错误一个”。

注意 - 应用程序“A”不是启动项目。这是一个使用 maven 构建的简单 Spring 应用程序。

请帮忙。如果我需要为此分享任何代码,请告诉我。提前致谢。

【问题讨论】:

  • 嗨 Pinaki,几周前我遇到了这个 Spring Boot 依赖问题。问题源于将启动可执行 JAR 引入项目,而不是包含实际类文件的 jar。 baeldung.com/spring-boot-dependency

标签: java maven spring-boot


【解决方案1】:

Spring boot jar 并不是真正的 jar,它是这里的核心问题。 为方便起见,它只打包为 jar,但如果您打开它(使用 WinRaR/WinZip 或任何其他程序),您会看到它没有 JAR 结构,例如,所有依赖项都包含在 JAR 中(请参阅 BOOT-INF/lib)。

所以,归根结底,如果 A 和 B 都是 Spring Boot 应用程序,则不能在它们之间建立依赖关系。

作为一种解决方案,考虑将应该共享的代码提取到第三个模块“C”中,该模块将具有打包 jar,但本身不会是 Spring Boot 应用程序。

然后让 A 和 B 都依赖于 C,然后你就设置好了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2019-08-10
    • 2017-02-17
    • 2017-04-20
    • 2019-02-20
    • 2021-05-24
    • 2023-03-16
    • 2022-01-04
    相关资源
    最近更新 更多