Spring 引导 "Thinner Fat Jar" - 将 jar 拆分为 2(应用程序/库)
Spring Boot "Thinner Fat Jar" - Split jar in 2 (app / libs)
我想将我的应用拆分成 2 个 fat jar (modules/libraries)。
我已经检查了“Spring Boot thin jar project”,它首先加载依赖项并缓存它们 运行 但我不能让它与多个本地模块一起工作。
仍然......我更愿意让我的第一种方法奏效。有什么想法吗?
Gradle 6.9.1(7.x 不能使用 thin jar)
Spring 引导 2.6.x
已编辑 (2022-02)
检查下面我的解决方案...
创建2个项目,构建时,构建到2个JAR文件。
项目 1(fat JAR)对项目 2 的引用。
Spring Boot fat JAR(已嵌入 Tomcat),将调用另一个 JAR。
我做到了我想做的事。
为此,我不得不将 gradle 中的 bootJar 任务扩展为 2 个任务,一个用于依赖项,一个用于我的库...
task bootJarDeps(type: org.springframework.boot.gradle.tasks.bundling.BootJar) {
description "Generates JAR with just dependencies."
exclude 'com.mypackage.**.jar'
archiveName 'deps.jar'
mainClass = 'com.mypackage.App'
with bootJar
}
依赖项中的 mainClass 没有用,但仍然是任务所必需的。
task bootJarApp(type: org.springframework.boot.gradle.tasks.bundling.BootJar) {
description "Generates JAR without dependencies."
include 'com.mypackage.**.jar'
mainClass = 'com.mypackage.App'
archiveName 'app.jar'
with bootJar
}
我想将我的应用拆分成 2 个 fat jar (modules/libraries)。
我已经检查了“Spring Boot thin jar project”,它首先加载依赖项并缓存它们 运行 但我不能让它与多个本地模块一起工作。
仍然......我更愿意让我的第一种方法奏效。有什么想法吗?
Gradle 6.9.1(7.x 不能使用 thin jar)
Spring 引导 2.6.x
已编辑 (2022-02)
检查下面我的解决方案...
创建2个项目,构建时,构建到2个JAR文件。
项目 1(fat JAR)对项目 2 的引用。
Spring Boot fat JAR(已嵌入 Tomcat),将调用另一个 JAR。
我做到了我想做的事。
为此,我不得不将 gradle 中的 bootJar 任务扩展为 2 个任务,一个用于依赖项,一个用于我的库...
task bootJarDeps(type: org.springframework.boot.gradle.tasks.bundling.BootJar) {
description "Generates JAR with just dependencies."
exclude 'com.mypackage.**.jar'
archiveName 'deps.jar'
mainClass = 'com.mypackage.App'
with bootJar
}
依赖项中的 mainClass 没有用,但仍然是任务所必需的。
task bootJarApp(type: org.springframework.boot.gradle.tasks.bundling.BootJar) {
description "Generates JAR without dependencies."
include 'com.mypackage.**.jar'
mainClass = 'com.mypackage.App'
archiveName 'app.jar'
with bootJar
}