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

原依赖存于单独lib正常运行,现需Jar含全依赖,求Gradle执行方法

如何构建包含所有依赖的可执行Jar并运行它

没问题!我来帮你搞定这个事——要把所有外部依赖打包进单个可执行Jar(也就是常说的「fat jar」),咱们可以通过调整Gradle配置来实现,下面分两种常见方法给你说明:

方法一:使用Shadow插件(推荐,开箱即用)

Shadow是Gradle生态里专门用来构建fat jar的插件,能自动处理依赖合并、重复文件冲突这些问题,非常省心。

1. 修改你的Gradle配置文件

在build.gradle里更新插件配置,替换或补充原来的内容:

plugins {
    id 'java-library'
    id 'com.github.johnrengelman.shadow' version '7.1.2' // 可根据Gradle版本选择最新兼容版
}

group = 'com.MyCompany'
version = '0.0.1-SNAPSHOT'
description = "data-purge-service"
sourceCompatibility = 1.8
targetCompatibility = 1.8

tasks.withType(JavaCompile) { 
    options.encoding = 'UTF-8' // 补充完整编码值
}

// 配置Shadow插件,指定你的主类(程序入口)
shadowJar {
    manifest {
        attributes 'Main-Class': 'com.MyCompany.data.purge.YourMainClass' // 替换成你实际的主类全限定名
    }
}

2. 构建fat jar

在终端执行以下命令:

  • Linux/Mac:./gradlew shadowJar
  • Windows:gradlew.bat shadowJar

构建完成后,fat jar会生成在build/libs/目录下,文件名一般是data-purge-service-0.0.1-SNAPSHOT-all.jar(带-all后缀的就是包含所有依赖的Jar)。

3. 运行这个Jar

直接用java -jar命令执行即可:

java -jar build/libs/data-purge-service-0.0.1-SNAPSHOT-all.jar

方法二:自定义Gradle Task(无需额外插件)

如果你不想引入第三方插件,也可以自己写一个Gradle Task来构建fat jar:

1. 添加自定义Task到build.gradle

在配置文件末尾添加以下内容:

task fatJar(type: Jar) {
    // 指定主类,替换成你的实际入口类
    manifest {
        attributes 'Main-Class': 'com.MyCompany.data.purge.YourMainClass'
    }
    // 把所有依赖的class文件打包进来
    from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
    // 合并原Jar的内容
    with jar
}

2. 构建并运行

  • 构建命令:./gradlew fatJar(Linux/Mac)或gradlew.bat fatJar(Windows)
  • 运行命令:
java -jar build/libs/data-purge-service-0.0.1-SNAPSHOT.jar

注意:自定义Task可能会遇到依赖重复文件(比如META-INF下的文件)的问题,如果出现报错,你需要在Task里添加排除规则,比如:

from { 
    configurations.runtimeClasspath.collect { 
        it.isDirectory() ? it : zipTree(it).matching {
            exclude 'META-INF/*.SF'
            exclude 'META-INF/*.DSA'
            exclude 'META-INF/*.RSA'
        }
    } 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:32:41