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

Gradle 9中如何修改子项目的编译Jar包名称?

Gradle 9中修改子项目Jar包名称的方案

Gradle 9彻底移除了废弃已久的archivesBaseName,现在可以通过以下两种方式修改子项目的Jar包名称:

1. 单独配置Jar任务

直接在子项目配置块中针对jar任务设置archiveBaseName属性,这是最精准的方式,仅影响Jar产物:

subprojects {
    // 保留原有配置...
    
    jar {
        // 自定义Jar名称,可使用固定值或动态生成
        archiveBaseName.set("my-custom-name")
        // 示例:基于子项目名称动态生成
        // archiveBaseName.set("prefix-${project.name}")
    }
}

如果每个子项目需要不同的名称,也可以在各自子项目的build.gradle文件中单独配置该任务,无需在根项目统一设置。

2. 配置项目级归档名称

通过项目的archivesName属性统一设置所有归档任务的名称(包括Jar、源码包等):

subprojects {
    // 保留原有配置...
    
    archivesName.set("unified-archive-name")
    // 示例:根据子项目名称动态生成
    // archivesName.set("project-${project.name}")
}

修改后的完整根项目配置示例

plugins {
    id 'java'
}

group = 'com.elikill58'

subprojects {
    apply plugin: 'java-library'

    repositories {
        mavenCentral()
    }
    
    dependencies {
        compileOnly 'org.checkerframework:checker-qual:3.7.0'
    }

    java.toolchain.languageVersion = JavaLanguageVersion.of(21)

    tasks.withType(JavaCompile) {
        options.encoding = 'UTF-8'
    }

    // 添加Jar名称配置,这里用子项目名称加前缀示例
    jar {
        archiveBaseName.set("elikill58-${project.name}")
    }
}

注意事项

  • archiveBaseName是任务级属性,仅作用于指定的归档任务(比如jar);
  • archivesName是项目级属性,会影响所有归档类任务;
  • 两种方式都支持通过project.name、project.group等项目属性动态生成名称,适配多子项目的差异化需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 20:33:08