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

如何通过Gradle Task重命名文件?将project-1.5.jar改为project.jar

解决方案:在Gradle中重命名已有Jar文件

针对你要把src/project-1.5.jar重命名为src/project.jar的需求,我整理了两种简洁可行的Gradle实现方式,都是日常开发里常用的方案:

方式一:使用Copy任务(推荐)

Gradle的Copy任务内置了成熟的重命名逻辑,还能自动处理文件路径、冲突等细节,比手动操作文件更稳妥。你可以在build.gradle(或build.gradle.kts,如果你用Kotlin DSL的话)里添加如下任务:

Groovy DSL 版本

task renameProjectJar(type: Copy) {
    // 指定源文件所在目录
    from 'src/'
    // 匹配要处理的目标Jar文件
    include 'project-1.5.jar'
    // 输出目录和源目录保持一致,直接在src下修改
    into 'src/'
    // 执行重命名替换
    rename { fileName ->
        fileName.replace('project-1.5.jar', 'project.jar')
    }
    // 可选:提前删除已存在的目标文件,避免冲突
    doFirst {
        def targetFile = file('src/project.jar')
        if (targetFile.exists()) {
            targetFile.delete()
        }
    }
}

Kotlin DSL 版本

tasks.register<Copy>("renameProjectJar") {
    from("src/")
    include("project-1.5.jar")
    into("src/")
    rename { fileName ->
        fileName.replace("project-1.5.jar", "project.jar")
    }
    doFirst {
        val targetFile = file("src/project.jar")
        if (targetFile.exists()) {
            targetFile.delete()
        }
    }
}

执行时只需在命令行运行:./gradlew renameProjectJar(Windows环境用gradlew.bat renameProjectJar)。

方式二:直接用File操作(轻量版)

如果不需要Copy任务的额外特性,也可以创建一个普通任务,用Gradle的文件API直接完成重命名:

Groovy DSL 版本

task renameProjectJar {
    doLast {
        def sourceFile = file('src/project-1.5.jar')
        def targetFile = file('src/project.jar')
        
        // 先检查源文件是否存在,避免报错
        if (sourceFile.exists()) {
            // 若目标文件已存在,先删除
            if (targetFile.exists()) {
                targetFile.delete()
            }
            // 执行重命名
            sourceFile.renameTo(targetFile)
        } else {
            println "Error: 源文件 src/project-1.5.jar 不存在!"
        }
    }
}

Kotlin DSL 版本

tasks.register("renameProjectJar") {
    doLast {
        val sourceFile = file("src/project-1.5.jar")
        val targetFile = file("src/project.jar")
        
        if (sourceFile.exists()) {
            if (targetFile.exists()) {
                targetFile.delete()
            }
            sourceFile.renameTo(targetFile)
        } else {
            println("Error: 源文件 src/project-1.5.jar 不存在!")
        }
    }
}

额外提示

如果这个Jar是你通过Gradle构建生成的,其实可以直接在jar任务里配置输出文件名,省掉额外的重命名步骤:

jar {
    archiveFileName.set('project.jar')
}

这样构建出来的Jar直接就是你想要的名称,不用事后再修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:31