未找到名称为 'integrationTestCompile' 的配置

Configuration with name 'integrationTestCompile' not found

尝试将我的 gradle 版本从 5.x 升级到 7.x 时,出现以下错误


* What went wrong:
Configuration with name 'integrationTestCompile' not found.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

下面是我的代码

sourceSets {
    create("integrationTest") {
        compileClasspath += sourceSets.main.get().output
        runtimeClasspath += sourceSets.main.get().output
        runtimeClasspath += sourceSets.test.get().output
    }
}

val integrationTestCompile: Configuration by configurations.getting {
    extendsFrom(configurations.testImplementation.get())
}
val integrationTestRuntimeOnly: Configuration by configurations.getting {
    extendsFrom(configurations.testRuntimeOnly.get())
}

tasks {
    val integrationTest by creating(Test::class) {
        description = "Running integration tests."
        group = "verification"

        testClassesDirs = sourceSets["integrationTest"].output.classesDirs
        classpath = sourceSets["integrationTest"].runtimeClasspath
        shouldRunAfter("test")
    }
}

将 gradle 与 kotlin 结合使用。

如何解决这个问题?

您可以通过以下方式在 gradle 最新版本

中创建 integrationTest 任务
configurations {
    integrationTestImplementation.extendsFrom testImplementation
    integrationTestRuntimeOnly.extendsFrom runtimeOnly
}

sourceSets {
    integrationTest {
        compileClasspath += sourceSets.main.output
        compileClasspath += configurations['testRuntimeClasspath']
        runtimeClasspath += compileClasspath
    }
}

task integrationTest(type: Test) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath

    mustRunAfter test
}