You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Gradle将Spring Boot应用构建为可依赖的fat jar?

Gradle配置生成可作为依赖的Spring Boot Fat Jar

要实现生成可作为依赖的Spring Boot Fat Jar,同时区分可执行归档,你可以通过以下Gradle配置实现:

核心配置步骤

1. 标记可执行Jar的分类符

修改bootJar任务,指定classifier来区分可执行Jar,避免与可依赖Jar冲突:

bootJar {
    classifier = 'exec' // 可执行Jar会被命名为 [artifactId]-[version]-exec.jar
}

2. 配置默认Jar为Fat Jar

默认的jar任务仅打包项目自身代码,需要修改它来包含所有依赖,生成可作为依赖的Fat Jar:

jar {
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    // 排除签名文件,避免依赖时出现冲突
    exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA'
}

完整示例配置

将上述配置添加到你的build.gradle中,最终配置如下:

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.7.4'
    id 'io.spring.dependency-management' version '1.0.14.RELEASE'
    id 'org.jetbrains.gradle.plugin.idea-ext' version '1.1.6'
}

// 配置可执行Jar的分类符
bootJar {
    classifier = 'exec'
}

// 配置默认Jar为包含所有依赖的Fat Jar
jar {
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA'
}

// 基础配置示例
group = 'com.example'
version = '0.0.1-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    // 添加你的其他业务依赖
}

构建结果说明

执行gradle build后,在build/libs目录下会生成两个Jar文件:

  • [artifactId]-[version].jar:可作为依赖的Fat Jar,包含项目代码及所有依赖
  • [artifactId]-[version]-exec.jar:可执行的Spring Boot Jar,用于直接启动应用

依赖使用方式

在其他项目中引入该Fat Jar作为依赖时,直接使用默认的artifact坐标即可:

dependencies {
    implementation 'com.example:your-artifact-id:0.0.1-SNAPSHOT'
}

内容的提问来源于stack exchange,提问作者uli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:05:39