将弹簧子项目打包到一个罐子中



我有基于Spring的网络应用程序,我试图将其捆绑到一个罐子中。

我对项目布局的想法是拥有一个包含多个子项目的根项目,其中将有一个子项目是 spring-boot 应用程序,而其他子项目可能是我自己编写的代码处理某些业务逻辑。

因此,结构可能如下所示:

/root
build.gradle <- the problem is here, how I should write root project build script
/spring-backend-subproject
/other-business-subproject

有了所有这些子项目,我想将它们全部打包到一个 JAR 中,这样我就可以做

java -jar build/libs/RootJar.jar

否则我需要运行:

./gradlew bootRun

它将在"spring-boot"子项目中运行特定的主类

我一直在网上搜索如何将所有子项目罐子捆绑到一个罐子中,例如这个:Gradle 可以将多个项目罐子捆绑到一个罐子中吗? 但我经常最终遇到错误,例如找不到主类(如果我专门在"spring子项目"文件夹中运行jar,则不会发生这种情况(或找不到SpringApplication类(如果在子项目文件夹中运行jar,则不会再次发生(

我该如何解决这个问题?

谢谢!

我广泛使用这种模式。与其尝试将部署类放入根目录,不如添加一个模块(我通常称之为-launcher(,该模块将其他模块列为依赖项,并包含主类和相关的应用程序代码,例如您可能拥有的任何application.properties

此模块将生成一个工件my-project-launcher.jar,并将其部署到您正在使用的任何平台。

最新更新