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

使用Gradle bootJar替代jar任务后Jenkins构建失败

解决Spring Boot Gradle插件引入后Jenkins Artifactory发布找错Jar文件的问题

看起来你遇到的核心问题是:Jenkins的artifactoryPublish任务还在试图寻找旧的jar任务产出的文件,而没有适配Spring Boot插件替换后的bootJar任务,另外也有可能是Jenkins环境中的配置覆盖了你在bootJar里定义的baseName。下面分几个方向给你排查和解决的思路:

1. 确保Artifactory发布任务关联bootJar产物

Spring Boot Gradle插件会自动禁用默认的jar任务,并用bootJar替代。如果你的Artifactory配置还是默认绑定jar任务的产物,就会找不到文件。你需要明确告诉Gradle的发布系统要使用bootJar的输出:

在build.gradle里配置publishing块,将bootJar关联到Maven发布组件:

publishing {
    publications {
        mavenJava(MavenPublication) {
            artifact bootJar // 这里指定用bootJar的产物,而不是默认的jar
        }
    }
}

// 然后确保artifactoryPublish任务使用这个发布配置
artifactoryPublish {
    publications('mavenJava')
}

这样Artifactory插件就会去上传bootJar生成的my-project-0.2.1-SNAPSHOT.jar,而不是找旧的jar文件。

2. 检查Jenkins是否覆盖了Gradle的baseName或项目名称

有时候Jenkins构建会通过命令行参数覆盖Gradle的属性,比如有些团队会在Jenkins构建配置里加-Pproject.name=workspace或者类似参数,这会直接覆盖你在bootJar里设置的baseName(如果你的配置里有依赖project.name的逻辑)。

你可以在build.gradle里加一行日志,验证Jenkins环境中的baseName和项目名称:

bootJar {
    baseName = 'my-project'
    println ">>> BootJar baseName in build: ${baseName}"
    println ">>> Project name in build: ${project.name}"
    // 其他原有配置...
}

然后查看Jenkins的构建日志,看这两个输出是不是my-project。如果不是,说明Jenkins的构建参数或环境变量覆盖了你的配置,需要去Jenkins的任务配置里删掉这些额外参数。

3. 排查是否有其他脚本/插件修改了归档名称

检查你的build.gradle或者引入的其他Gradle插件(比如自定义的发布脚本、版本管理插件),有没有动态修改bootJar或jar的archiveName、baseName的逻辑。比如有些插件会根据分支名称自动修改版本或文件名,这可能导致Jenkins环境下的文件名和本地不一致。

4. 强制指定Artifactory的上传文件路径

如果前面的方法都没解决,你可以直接在artifactoryPublish任务里硬指定要上传的文件,绕过自动匹配的逻辑:

artifactoryPublish {
    deploy {
        // 直接指定bootJar生成的文件路径
        artifact(file("${buildDir}/libs/my-project-${project.version}-SNAPSHOT.jar")) {
            targetPath = "com/example/my-project/${project.version}/" // 对应你的Artifactory仓库路径
        }
    }
}

为什么本地正常?

本地构建时,没有Jenkins环境的额外参数干扰,bootJar任务的配置能正常生效,生成正确的文件名;而Jenkins环境要么是Artifactory插件没适配新的bootJar任务,要么是有外部参数覆盖了你的配置,导致任务找错了文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:55:46