2017-07-30 45 views
0

我有基于Spring的Web应用程序,我试图捆绑到一个单一的罐子。包装弹簧子项目到一个罐子

我对项目布局的想法是让一个包含多个子项目的根项目,其中一个子项目是一个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”中运行特定的主类,子项目

我一直在为如何将所有子项目罐子捆绑成一个罐子,如网上搜索这一个:Can Gradle jar multiple projects into one jar? 但我常常只是最终有错误,如主类未找到(不如果我在“spring子项目”文件夹中专门运行jar)或SpringApplication类未找到(如果在子项目文件夹中运行jar,则不会发生)

我该如何解决此问题?

谢谢!

回答

1

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

该模块将产生一个神器my-project-launcher.jar,并将其部署到您正在使用的任何平台。

+0

啊,我明白了。好的解决方案,谢谢! –

+0

但我不能得到一个罐子 –