[IDEA] Add check on gradle version not to broke Gradle older 4.0
This commit is contained in:
+35
-33
@@ -16,42 +16,44 @@ class KotlinNonJvmGutterConfigurator : AbstractProjectResolverExtension() {
|
|||||||
//language=Gradle
|
//language=Gradle
|
||||||
"""
|
"""
|
||||||
({
|
({
|
||||||
def doIfInstance = { Task task, String fqn, Closure action ->
|
if (GradleVersion.current() >= GradleVersion.version("4.0")) {
|
||||||
def taskSuperClass = task.class
|
def doIfInstance = { Task task, String fqn, Closure action ->
|
||||||
while (taskSuperClass != Object.class) {
|
def taskSuperClass = task.class
|
||||||
if (taskSuperClass.canonicalName == fqn) {
|
while (taskSuperClass != Object.class) {
|
||||||
action()
|
if (taskSuperClass.canonicalName == fqn) {
|
||||||
|
action()
|
||||||
return
|
|
||||||
} else {
|
return
|
||||||
taskSuperClass = taskSuperClass.superclass
|
} else {
|
||||||
}
|
taskSuperClass = taskSuperClass.superclass
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gradle.afterProject { project ->
|
|
||||||
// Test task should have some parameters
|
|
||||||
// Create dummy task to consume outputs by Test task
|
|
||||||
project.tasks.create("nonJvmTestIdeSupportDummy")
|
|
||||||
|
|
||||||
// IDEA now process filter parameters only for Test tasks
|
|
||||||
project.tasks.create('nonJvmTestIdeSupport', Test) {
|
|
||||||
testClassesDirs = project.tasks["nonJvmTestIdeSupportDummy"].outputs.files
|
|
||||||
classpath = project.tasks["nonJvmTestIdeSupportDummy"].outputs.files
|
|
||||||
}
|
|
||||||
|
|
||||||
project.afterEvaluate {
|
|
||||||
project.tasks.each { Task task ->
|
|
||||||
doIfInstance(task, "org.jetbrains.kotlin.gradle.tasks.KotlinTest") {
|
|
||||||
task.dependsOn('nonJvmTestIdeSupport')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
gradle.afterProject { project ->
|
||||||
gradle.taskGraph.beforeTask { Task task ->
|
// Test task should have some parameters
|
||||||
doIfInstance(task, "org.jetbrains.kotlin.gradle.tasks.KotlinTest") {
|
// Create dummy task to consume outputs by Test task
|
||||||
task.filter.includePatterns = task.project.tasks['nonJvmTestIdeSupport'].filter.includePatterns
|
project.tasks.create("nonJvmTestIdeSupportDummy")
|
||||||
|
|
||||||
|
// IDEA now process filter parameters only for Test tasks
|
||||||
|
project.tasks.create('nonJvmTestIdeSupport', Test) {
|
||||||
|
testClassesDirs = project.tasks["nonJvmTestIdeSupportDummy"].outputs.files
|
||||||
|
classpath = project.tasks["nonJvmTestIdeSupportDummy"].outputs.files
|
||||||
|
}
|
||||||
|
|
||||||
|
project.afterEvaluate {
|
||||||
|
project.tasks.each { Task task ->
|
||||||
|
doIfInstance(task, "org.jetbrains.kotlin.gradle.tasks.KotlinTest") {
|
||||||
|
task.dependsOn('nonJvmTestIdeSupport')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gradle.taskGraph.beforeTask { Task task ->
|
||||||
|
doIfInstance(task, "org.jetbrains.kotlin.gradle.tasks.KotlinTest") {
|
||||||
|
task.filter.includePatterns = task.project.tasks['nonJvmTestIdeSupport'].filter.includePatterns
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
|
|||||||
Reference in New Issue
Block a user