首页 > 解决方案 > 将 ArchiveName 传递给 gradle 中的 UploadArchives

问题描述

从 Spring Boot 1.5.19 迁移到 Spring Boot 2.0.4 后,我们在 jenkins 上的构建遇到了问题。使用 gradle 4.2.1。我们认为版本之间的 spring boot gradle 插件的行为变化导致了我们的问题。

spring Boot gradle 插件也从 1.5.19 更新到 2.0.4

我们的目标工件命名约定是:

project-name-<version>-<branch>-RELEASE.jar

jar 文件正确生成,在 build.gradle 文件中指定了以下内容。

bootJar {
    baseName = 'project_name'
}

执行 uploadArchives 任务时会出现问题。此任务查找具有以下命名约定的人工制品。

<path-folder-name>-<version>-<branch>-RELEASE.jar

jenkins 上的文件夹路径的名称在哪里。

它似乎没有选择 baseName 配置。

当我们不执行 uploadArchives 任务时,构建管道成功运行。此外,在 Spring Boot 升级之前,这不是问题。

有没有办法让 uploadArchives 任务查找生成的 jar 文件名?

标签: build.gradlespring-boot-gradle-plugin

解决方案


我最终通过添加一个 settings.gradle 文件并在其中定义一个根项目名称来解决这个问题

rootProject.name = "项目名称"

我认为spring Boot gradle插件的升级一定改变了项目的定义方式。

1.5.* 版本似乎从 Jar 任务中的 baseName 中获取项目名称,但较新的版本使用应用程序所在的文件夹名称。

那很有趣


推荐阅读