包装弹簧子项目分成一个罐子

时间:2017-07-30 08:28:00

标签: java spring gradle jar

我有基于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,则会发生)

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

我广泛使用这种模式。不要试图将部署类放入根目录,而是添加一个模块(我通常称之为-launcher),将其他模块列为依赖项,并包含主类和相关的应用程序代码,例如任何{{1}你可能有。

此模块将生成工件application.properties,您可以将其部署到您正在使用的任何平台上。