如何从 Gradle Multi Build 项目中发布 Spring Boot 应用程序?
Posted
技术标签:
【中文标题】如何从 Gradle Multi Build 项目中发布 Spring Boot 应用程序?【英文标题】:How to ship a Spring Boot app from a Gradle Multi Build project? 【发布时间】:2021-03-01 08:42:59 【问题描述】:假设我有一个 Gradle 多项目,其中包含 3 个子项目、2 个 Spring Boot 项目(auth
和 profile
)和 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。
我应该如何管理?
【问题讨论】:
【参考方案1】:终于搞定了,把这个加到每个子项目的settings.gradle
文件里,然后编译:
include ":commons"
project(':commons').projectDir = new File('../commons')
【讨论】:
首先你不应该在每个子项目中都有settings.gradle
。如果你这样做了,它就不再是一个多项目,而是完全独立的、不相关的项目。如果这是故意的,因为您出于某种原因确实不想将其构建为一个多项目,您应该查看composite builds。
好的,这可能就是为什么我仍然有部署问题。我能够在本地运行该应用程序,但是当我将其推送到 Heroku 时,我遇到了同样的错误,项目 :commons
未解决。请你检查这个问题:***.com/questions/64891154/…以上是关于如何从 Gradle Multi Build 项目中发布 Spring Boot 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
从 Gradle 运行 Android 的 build.xml 时,项目“LibA”中不存在目标“$build.target”
Gradle build.gradle 到 Maven pom.xml