Skip to content

Commit

Permalink
Get Android variant compile classpath from compileConfiguration (#5152)
Browse files Browse the repository at this point in the history
* Get compile classpath from variant compileConfiguration

Using compileClasspath didn't resolve the right values at the right point
during configuration phase, causing problems with the configuration cache.

Fixes #5150

* Add detektTest test case for #5150
  • Loading branch information
3flex committed Sep 22, 2022
1 parent 3e6d1d0 commit 505d6d7
Show file tree
Hide file tree
Showing 2 changed files with 36 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 All @@ -293,6 +291,31 @@ class DetektAndroidSpec {
)
}
}

@Test
@DisplayName("task :android_lib:detektTest")
fun libDetektTest() {
gradleRunner.runTasksAndCheckResult(
"--configuration-cache",
":android_lib:detektTest",
) { buildResult ->
assertThat(buildResult.output).contains("Configuration cache")
assertThat(buildResult.output).containsPattern(
"""--baseline \S*[/\\]detekt-baseline-debugUnitTest.xml """
)
assertThat(buildResult.output).containsPattern(
"""--baseline \S*[/\\]detekt-baseline-debugAndroidTest.xml """
)
assertThat(buildResult.output).contains("--report xml:")
assertThat(buildResult.output).contains("--report sarif:")
assertThat(buildResult.output).doesNotContain("--report txt:")
assertThat(buildResult.tasks.map { it.path }).containsAll(
listOf(
":android_lib:detektTest",
)
)
}
}
}

@Nested
Expand Down
Expand Up @@ -16,6 +16,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 @@ -119,7 +120,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 @@ -143,7 +148,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 505d6d7

Please sign in to comment.