【问题标题】:Gradle Upgrade issue: java.lang.IllegalArgumentException: Version must not be null o emptyGradle 升级问题:java.lang.IllegalArgumentException:版本不能为空或为空
【发布时间】:2026-01-13 20:40:01
【问题描述】:

我们在将 gradle 5.6 升级到 gradle 7.2 时遇到问题。

我们有一个简单的 spring boot 项目(sub1)和一个内部 spring 库项目(sub 2)。而 sub2 是依赖于 sub1 的 gradle spring lib。两个项目都使用相同的 gradle 和 spring boot 版本。

此外,我们正在尝试将 spring cloud 升级到需要 gradle upgrade 和 spring boot upgade 的最新版本。当前版本如下所示

  1. gradle - 7.2
  2. 春天 - 2.5.2
  3. 招摇 - 2.9.2

尝试点击 swagger url 时出现以下错误。

java.lang.IllegalArgumentException: Version must not be null o empty

Spring Boot 横幅为空白且未显示版本。我们怀疑这可能是问题所在。

Swagger 主页显示以下错误:

Failed to load API definition

Gradle 文件

    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4+'
    }
}

plugins {
    id "org.sonarqube" version "2.8"
    id "com.gorylenko.gradle-git-properties" version "2.2.2"
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'eclipse'
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'
apply plugin: "jacoco"

sourceCompatibility = 1.8

repositories {
    mavenCentral()

}

configurations {
  implementation.canBeResolved = true
}

jar {
    archiveVersion = "${project.findProperty('APP_VERSION') ?: 'MANUAL_BUILD'}"
    dependsOn configurations.runtimeClasspath
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    from {
        (configurations.runtimeClasspath-configuration.implementation).collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }

}

dependencies {
    implementation('org.springframework:spring-webmvc:5.3.8')
    implementation('org.apache.tomcat.embed:tomcat-embed-core:9.0.33')
    implementation('org.aspectj:aspectjrt:1.9.5')
 }

请帮助我们理解这个问题。

【问题讨论】:

    标签: java spring spring-boot swagger swagger-ui


    【解决方案1】:

    添加了一些新功能以及删除了 gradle5X 的一些功能,因此,请再次阅读文档并尝试添加以下可能对您的 API 有所帮助的依赖项。

    dependencies {
    // Ensure you use the Groovy 3.x variant
    testImplementation('org.spockframework:spock-core:2.0-groovy-3.0') {
        exclude group: 'org.codehaus.groovy'
    }
    testImplementation('org.junit.jupiter:junit-jupiter-api')
    

    }

    // Spock 2 is based on JUnit Platform and needs to be enabled explicitly.
    tasks.withType(Test).configureEach {
        useJUnitPlatform()
    }
    

    另外,请浏览一遍以获取更多详细信息https://docs.gradle.org/current/userguide/upgrading_version_6.html

    【讨论】:

      最近更新 更多