Skip to content

Commit

Permalink
Get compile classpath from variant compileConfiguration
Browse files Browse the repository at this point in the history
Using compileClasspath didn't resolve the right values at the right point
during configuration phase, causing problems with the configuration cache.

Fixes #5150
  • Loading branch information
3flex committed Jul 31, 2022
1 parent 90d7da2 commit 39b7480
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
Expand Up @@ -3,7 +3,6 @@ package io.gitlab.arturbosch.detekt
import io.gitlab.arturbosch.detekt.testkit.DslGradleRunner
import io.gitlab.arturbosch.detekt.testkit.ProjectLayout
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
Expand Down Expand Up @@ -274,7 +273,6 @@ class DetektAndroidSpec {

@Test
@DisplayName("task :android_lib:detektMain")
@Disabled("https://github.com/detekt/detekt/issues/5150")
fun libDetektMain() {
gradleRunner.runTasksAndCheckResult(
"--configuration-cache",
Expand Down
Expand Up @@ -14,6 +14,7 @@ import io.gitlab.arturbosch.detekt.extensions.DetektExtension
import org.gradle.api.DomainObjectSet
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.attributes.Attribute
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.TaskProvider
Expand Down Expand Up @@ -117,7 +118,11 @@ internal fun Project.registerAndroidDetektTask(
setSource(variant.sourceSets.map { it.javaDirectories + it.kotlinDirectories })
extraInputSource?.let { source(it) }
classpath.setFrom(
variant.getCompileClasspath(null).filter { it.exists() },
variant.compileConfiguration.incoming.artifactView { view ->
view.attributes {
it.attribute(Attribute.of("artifactType", String::class.java), "jar")
}
}.files,
bootClasspath,
javaCompileDestination(variant),
)
Expand All @@ -141,7 +146,11 @@ internal fun Project.registerAndroidCreateBaselineTask(
setSource(variant.sourceSets.map { it.javaDirectories + it.kotlinDirectories })
extraInputSource?.let { source(it) }
classpath.setFrom(
variant.getCompileClasspath(null).filter { it.exists() },
variant.compileConfiguration.incoming.artifactView { view ->
view.attributes {
it.attribute(Attribute.of("artifactType", String::class.java), "jar")
}
}.files,
bootClasspath,
javaCompileDestination(variant),
)
Expand Down

0 comments on commit 39b7480

Please sign in to comment.