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

如何在Gradle 6.8.3中正确构建FatJar?

Gradle 6.8.3 正确构建FatJar的解决方案

你的警告来自两个已废弃的Gradle属性,以及过时的依赖配置引用,以下是修正后的完整配置:

修正后的FatJar任务代码

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File Example',  
            'Implementation-Version': archiveVersion,
            'Main-Class': 'com.cekpremi.example'
    }
    archiveBaseName = "${project.name}-all"
    from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

关键改动说明

  • 替换废弃属性:
    1. 将 baseName 改为 archiveBaseName:Gradle 6.x 开始标记baseName为废弃,统一使用archiveBaseName作为归档文件基础名称属性
    2. 将manifest中的 version 改为 archiveVersion:原version引用的是AbstractArchiveTask的废弃属性,替换为官方推荐的archiveVersion
  • 更新依赖配置:
    把 configurations.compile 替换为 configurations.runtimeClasspath:Gradle 6+ 已逐步淘汰compile配置,runtimeClasspath会包含所有运行时必需的依赖,确保FatJar能独立运行

额外优化(可选)

如果希望Implementation-Version使用项目定义的版本号,先在build.gradle根节点定义版本:

version = '1.0.0' // 自定义项目版本

然后修改manifest中的对应行:

'Implementation-Version': project.version,

如果想让gradle clean build自动触发FatJar构建,添加以下配置:

build.dependsOn fatJar

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:05:29