我有基于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
将运行&#34; spring-boot&#34;中的特定主类。子项目
我一直在网上搜索如何将所有子项目罐子捆绑到一个罐子里,例如:Can Gradle jar multiple projects into one jar? 但是我经常最终遇到错误,例如找不到main-class(如果我专门在&#34; spring子项目&#34;文件夹中运行jar,或者找不到SpringApplication类,则不会发生这种情况)如果在子项目文件夹中运行jar,则会发生)
我该如何解决这个问题?
谢谢!
答案 0 :(得分:1)
我广泛使用这种模式。不要试图将部署类放入根目录,而是添加一个模块(我通常称之为-launcher
),将其他模块列为依赖项,并包含主类和相关的应用程序代码,例如任何{{1}你可能有。
此模块将生成工件application.properties
,您可以将其部署到您正在使用的任何平台上。