【问题标题】:Spring Boot Gradle plugin - Multi Module fat jarSpring Boot Gradle 插件 - 多模块 fat jar
【发布时间】:2017-08-16 03:13:02
【问题描述】:

我有如下所示的 gradle 多项目:

-项目
|
|- 常见
|- 模块A
|- 模块B

moduleA 是 Spring Boot 应用程序,它的 gradle 构建文件使用 SpringBootGradle 插件。该模块依赖于普通结节。

moduleB 也是 Spring Boot 应用程序,它的 gradle 构建文件使用 SpringBootGradle 插件。该模块依赖于模块A。

使用 gradle build 构建项目后,我希望 moduleA.jar 和 moduleB.jar 存在并且它们确实存在。 但是当我尝试运行 moduleB.jar 时出现异常(Spring Boot 初始化异常)。我发现 moduleB.jar 包含 lib 目录,其中包含来自 moduleA 的所有依赖项以及 moduleA.jar(也与依赖项一起打包)。

所以我需要找到一种方法,在构建过程中将 moduleA 普通 jar 作为依赖项添加到我的 moduleB。

【问题讨论】:

    标签: gradle spring-boot


    【解决方案1】:

    对于 Spring Boot 2.3 使用

    bootJar {
        classifier = 'boot' // or whatever
    }
    

    胖罐子(用于模块 A 和 B)的名称为 *-boot.jar,模块 B 将仅包含 module-a.jar

    here

    【讨论】:

      【解决方案2】:

      你需要configure module A so that it can be used as a dependency:

      bootRepackage  {
          classifier = 'exec'
      }
      

      这意味着你最终会得到两个罐子。一种没有可用作依赖项的分类器,另一种具有分类器,即可执行的 fat jar,其中嵌套了依赖项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-08
        • 2020-01-06
        • 2016-06-11
        • 2021-08-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-15
        • 2014-08-30
        相关资源
        最近更新 更多