【问题标题】:How to ship a Spring Boot app from a Gradle Multi Build project?如何从 Gradle Multi Build 项目中发布 Spring Boot 应用程序?
【发布时间】:2021-03-01 08:42:59
【问题描述】:

假设我有一个 Gradle 多项目,其中包含 3 个子项目、2 个 Spring Boot 项目(authprofile)和 1 个库项目(commons)。

这 2 个 Spring Boot 项目包括对 Library 项目的依赖:implementation project(":commons")

实际上,要运行 2 个 Spring Boot 项目,我必须从父项目中运行它:

gradlew auth:bootRun
gradlew profile:bootRun

如果我只运行 gradlew bootRun,从每个 Spring Boot 子项目中,我会收到类似 :commons Library 项目未在根项目中找到的错误,这是有道理的,因为 :commons 项目仅包含在父母的settings.gradle 文件。

我必须将每个 Spring Boot 子项目单独推送到 Heroku。

我应该如何管理?

【问题讨论】:

    标签: spring-boot gradle groovy gradle-multi-project-build


    【解决方案1】:

    终于搞定了,把这个加到每个子项目的settings.gradle文件里,然后编译:

    include ":commons"
    project(':commons').projectDir = new File('../commons')
    

    【讨论】:

    • 首先你不应该在每个子项目中都有settings.gradle。如果你这样做了,它就不再是一个多项目,而是完全独立的、不相关的项目。如果这是故意的,因为您出于某种原因确实不想将其构建为一个多项目,您应该查看composite builds
    • 好的,这可能就是为什么我仍然有部署问题。我能够在本地运行该应用程序,但是当我将其推送到 Heroku 时,我遇到了同样的错误,项目 :commons 未解决。请你检查这个问题:stackoverflow.com/questions/64891154/…
    猜你喜欢
    • 2021-06-15
    • 2017-04-12
    • 2023-01-31
    • 2016-12-18
    • 1970-01-01
    • 2020-02-05
    • 2019-03-04
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多