mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle][test][IDEA-323444] fix kotlin-dsl task declaration for Gradle below 5.0
(cherry picked from commit cfa45347d91b4765c360aa0acb8ced0ee14857d6) IJ-CR-218334 GitOrigin-RevId: 7bbdcd3798ab484225f877ed7302162aa3744d48
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3c7fd008d0
commit
2c2c805f8d
+9
-1
@@ -2,6 +2,7 @@
|
||||
package org.jetbrains.plugins.gradle.frameworkSupport.buildscript
|
||||
|
||||
import com.intellij.gradle.toolingExtension.util.GradleVersionSpecificsUtil
|
||||
import com.intellij.gradle.toolingExtension.util.GradleVersionSpecificsUtil.isKotlinNamedAccessorsForCollectionsSupported
|
||||
import com.intellij.gradle.toolingExtension.util.GradleVersionUtil
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import org.gradle.util.GradleVersion
|
||||
@@ -68,7 +69,14 @@ abstract class AbstractGradleBuildScriptBuilder<Self : GradleBuildScriptBuilder<
|
||||
else -> call("tasks.named", argument(name), argument(code(type)), argument(block))
|
||||
}
|
||||
GradleDsl.KOTLIN -> when (name in PREDEFINED_TASKS) {
|
||||
true -> call("tasks.$name", argument(block))
|
||||
true -> {
|
||||
if (isKotlinNamedAccessorsForCollectionsSupported(gradleVersion)) {
|
||||
call("tasks.$name", argument(block))
|
||||
}
|
||||
else {
|
||||
call("tasks.named<$type>", argument(name), argument(block))
|
||||
}
|
||||
}
|
||||
else -> call("tasks.named<$type>", argument(name), argument(block))
|
||||
}
|
||||
}
|
||||
|
||||
+15
-4
@@ -395,7 +395,7 @@ class GradleBuildScriptBuilderTest : GradleBuildScriptBuilderTestCase() {
|
||||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junit5")
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
tasks.named<Test>("test") {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
""".trimIndent()),
|
||||
@@ -538,15 +538,26 @@ class GradleBuildScriptBuilderTest : GradleBuildScriptBuilderTestCase() {
|
||||
|
||||
@Test
|
||||
fun `test predefined task configuration`() {
|
||||
assertBuildScript("""
|
||||
assertBuildScript(
|
||||
GradleVersion.version("4.6") to ("""
|
||||
|test {
|
||||
| myConfiguration()
|
||||
|}
|
||||
""".trimMargin(), """
|
||||
""".trimMargin() to """
|
||||
|tasks.named<Test>("test") {
|
||||
| myConfiguration()
|
||||
|}
|
||||
""".trimMargin()),
|
||||
GradleVersion.version("5.0") to ("""
|
||||
|test {
|
||||
| myConfiguration()
|
||||
|}
|
||||
""".trimMargin() to """
|
||||
|tasks.test {
|
||||
| myConfiguration()
|
||||
|}
|
||||
""".trimMargin()) {
|
||||
""".trimMargin())
|
||||
) {
|
||||
configureTask("test", "Test") {
|
||||
call("myConfiguration")
|
||||
}
|
||||
|
||||
+8
@@ -37,6 +37,14 @@ object GradleVersionSpecificsUtil {
|
||||
fun isPluginExtensionSupported(gradleVersion: GradleVersion): Boolean =
|
||||
GradleVersionUtil.isGradleAtLeast(gradleVersion, "4.10")
|
||||
|
||||
/**
|
||||
* This feature of kotlin-dsl was introduced in 1.0-RC12 which is bundled starting from Gradle 5.0.
|
||||
* https://github.com/gradle/kotlin-dsl-samples/issues/879
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isKotlinNamedAccessorsForCollectionsSupported(gradleVersion: GradleVersion): Boolean =
|
||||
GradleVersionUtil.isGradleAtLeast(gradleVersion, "5.0")
|
||||
|
||||
@JvmStatic
|
||||
fun isKotlinPropertyAssignmentSupported(gradleVersion: GradleVersion): Boolean =
|
||||
GradleVersionUtil.isGradleAtLeast(gradleVersion, "8.6")
|
||||
|
||||
Reference in New Issue
Block a user