【问题标题】:Convert gradle multi project to springboot fat jar application将 gradle 多项目转换为 springboot fat jar 应用程序
【发布时间】:2019-10-08 07:27:10
【问题描述】:

我有一个 http servlet 应用程序,它是一个 multi project gradle 构建,我的项目是一个包含 gradle HttpServlet 项目,它依赖于其他两个 gradle java 项目.我在 tomcat webapps/Web-INF/lib 目录中部署了所有 3 个 jar 并运行它。

现在有一个要求,我必须将我的应用程序转换为 spring boot 应用程序,我必须创建一个 fat jar 而不是 3 个单独的 jars运行。

我对等级和弹簧靴没有太多经验。我想知道如何从多 gradle 项目创建一个胖 jar。

我将我的 http servlet 项目转换为 spring boot 项目,但我很困惑如何引用 springboot 项目中的其他 gradle 项目并创建一个单独的 fat jar?请看项目目录结构

Rootrepository
  - Springboot project
     -src….
- OtherGardleProject1
    - Src…
- OtherGardleProject2
    - Src…

有人可以分享一些指针吗?

【问题讨论】:

标签: spring-boot gradle


【解决方案1】:

您可以使用包含主应用程序和库的顶级 settings.gradle 文件

Rootrepository
  - settings.gradle 
  - Springboot project
     - build.gradle
     -src….
- OtherGardleProject1
    - Src…
- OtherGardleProject2
    - Src…

settings.gradle 看起来像这样:

include: ':Springboot project', ':OtherGardleProject1', ':OtherGardleProject2'

然后在Springboot project 模块的build.gradle 中将依赖项添加到库中

plugins {
   id 'org.springframework.boot' version '2.0.3.RELEASE'
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

...
dependencies {
  compile project(':OtherGardleProject1')
  compile project(':OtherGardleProject2')
  ...
}

构建项目后,Sprinboot project/build/libs 文件夹中的 jar 应该包含应用程序的类和其他两个模块作为 jar 文件。

希望对你有帮助。

【讨论】:

  • 这是我以前做的。我正在寻找创建一个胖罐
  • 胖罐子到底是什么意思?在jar里面的BOOT-INF\classes里面添加两个模块的类?
  • 我不确定它是否应该添加到 BOOT-INF 但其他项目的类应该添加到 springboot jars
  • 我遵循了您提到的目录结构,并且能够使用subprojects.each { subproject -> evaluationDependsOn(subproject.path) } task mmJar(type: Jar, dependsOn: subprojects.jar) { manifest { attributes 'Main-Class': 'org.springframework.boot.loader.JarLauncher' attributes 'Start-Class': ‘mypackage.springboot.Application' } subprojects.each { subproject -> from subproject.configurations.archives.artifacts.files.collect { zipTree(it) } } } 创建一个胖 jar。但是在运行时失败并出现以下异常
  • 我怀疑这与 jar 的构建方式有关。与其自己创建 jar,不如让 spring-boot gradle plugin 来做。
猜你喜欢
  • 2019-03-19
  • 2014-09-19
  • 1970-01-01
  • 2016-04-09
  • 2020-07-29
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 2015-12-13
相关资源
最近更新 更多