Skip to content

Commit

Permalink
Fix issues introduced by #5152 (#5508)
Browse files Browse the repository at this point in the history
* Revert behaviour change from 505d6d7

* Use standard getter to determine CLI arguments

This avoids the issue with configuration cache originally reported in
#5150, while keeping the v1.21 method of determining the classpath for the
generated detekt tasks.
  • Loading branch information
3flex committed Nov 5, 2022
1 parent 2c3b2ce commit 9b38f67
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 28 deletions.
Expand Up @@ -208,8 +208,8 @@ abstract class Detekt @Inject constructor(
}

@get:Internal
internal val arguments: Provider<List<String>> = project.provider {
listOf(
internal val arguments
get() = listOf(
InputArgument(source),
ClasspathArgument(classpath),
LanguageVersionArgument(languageVersionProp.orNull),
Expand All @@ -230,7 +230,6 @@ abstract class Detekt @Inject constructor(
BasePathArgument(basePathProp.orNull),
DisableDefaultRuleSetArgument(disableDefaultRuleSetsProp.getOrElse(false))
).plus(convertCustomReportsToArguments()).flatMap(CliArgument::toArgument)
}

@InputFiles
@SkipWhenEmpty
Expand All @@ -252,7 +251,7 @@ abstract class Detekt @Inject constructor(
@TaskAction
fun check() {
DetektInvoker.create(task = this, isDryRun = isDryRun).invokeCli(
arguments = arguments.get(),
arguments = arguments,
ignoreFailures = ignoreFailures,
classpath = detektClasspath.plus(pluginClasspath),
taskName = name
Expand Down
Expand Up @@ -20,7 +20,6 @@ import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.FileTree
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Classpath
import org.gradle.api.tasks.Console
Expand Down Expand Up @@ -115,8 +114,8 @@ abstract class DetektCreateBaselineTask : SourceTask() {
abstract val jdkHome: DirectoryProperty

@get:Internal
internal val arguments: Provider<List<String>> = project.provider {
listOf(
internal val arguments
get() = listOf(
CreateBaselineArgument,
ClasspathArgument(classpath),
JvmTargetArgument(jvmTargetProp.orNull),
Expand All @@ -131,7 +130,6 @@ abstract class DetektCreateBaselineTask : SourceTask() {
BasePathArgument(basePathProp.orNull),
DisableDefaultRuleSetArgument(disableDefaultRuleSets.getOrElse(false))
).flatMap(CliArgument::toArgument)
}

@InputFiles
@SkipWhenEmpty
Expand All @@ -142,7 +140,7 @@ abstract class DetektCreateBaselineTask : SourceTask() {
@TaskAction
fun baseline() {
DetektInvoker.create(task = this).invokeCli(
arguments = arguments.get(),
arguments = arguments,
ignoreFailures = ignoreFailures.getOrElse(false),
classpath = detektClasspath.plus(pluginClasspath),
taskName = name
Expand Down
Expand Up @@ -10,7 +10,6 @@ import org.gradle.api.DefaultTask
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Provider
import org.gradle.api.services.BuildService
import org.gradle.api.services.BuildServiceParameters
import org.gradle.api.tasks.CacheableTask
Expand Down Expand Up @@ -57,12 +56,11 @@ abstract class DetektGenerateConfigTask @Inject constructor(
}

@get:Internal
internal val arguments: Provider<List<String>> = project.provider {
listOf(
internal val arguments
get() = listOf(
GenerateConfigArgument,
ConfigArgument(configFile.get())
).flatMap(CliArgument::toArgument)
}

@TaskAction
fun generateConfig() {
Expand All @@ -74,7 +72,7 @@ abstract class DetektGenerateConfigTask @Inject constructor(
Files.createDirectories(configFile.get().asFile.parentFile.toPath())

DetektInvoker.create(task = this).invokeCli(
arguments = arguments.get(),
arguments = arguments,
classpath = detektClasspath.plus(pluginClasspath),
taskName = name,
)
Expand Down
Expand Up @@ -16,7 +16,6 @@ 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 @@ -123,11 +122,7 @@ internal fun Project.registerAndroidDetektTask(
setSource(variant.sourceSets.map { it.javaDirectories + it.kotlinDirectories })
extraInputSource?.let { source(it) }
classpath.setFrom(
variant.compileConfiguration.incoming.artifactView { view ->
view.attributes {
it.attribute(Attribute.of("artifactType", String::class.java), "jar")
}
}.files,
variant.getCompileClasspath(null).filter { it.exists() },
bootClasspath,
javaCompileDestination(variant),
)
Expand All @@ -151,11 +146,7 @@ internal fun Project.registerAndroidCreateBaselineTask(
setSource(variant.sourceSets.map { it.javaDirectories + it.kotlinDirectories })
extraInputSource?.let { source(it) }
classpath.setFrom(
variant.compileConfiguration.incoming.artifactView { view ->
view.attributes {
it.attribute(Attribute.of("artifactType", String::class.java), "jar")
}
}.files,
variant.getCompileClasspath(null).filter { it.exists() },
bootClasspath,
javaCompileDestination(variant),
)
Expand Down
Expand Up @@ -37,7 +37,7 @@ class DetektJvmSpec {
val project = gradleRunner.buildProject()

val detektTask = project.tasks.getByPath("detektMain") as Detekt
val argumentString = detektTask.arguments.get().joinToString(" ")
val argumentString = detektTask.arguments.joinToString(" ")

assertThat(argumentString).containsPattern("""--baseline \S*[/\\]detekt-baseline-main.xml """)
assertThat(argumentString).contains("--report xml:")
Expand All @@ -53,7 +53,7 @@ class DetektJvmSpec {
val project = gradleRunner.buildProject()

val detektTask = project.tasks.getByPath("detektTest") as Detekt
val argumentString = detektTask.arguments.get().joinToString(" ")
val argumentString = detektTask.arguments.joinToString(" ")

assertThat(argumentString).containsPattern("""--baseline \S*[/\\]detekt-baseline-test.xml """)
assertThat(argumentString).contains("--report xml:")
Expand Down
Expand Up @@ -68,7 +68,7 @@ class DetektPlainSpec {
val project = gradleRunner.buildProject()

val detektTask = project.tasks.getByPath("detekt") as Detekt
val argumentString = detektTask.arguments.get().joinToString(" ")
val argumentString = detektTask.arguments.joinToString(" ")

assertThat(argumentString).containsPattern("""--baseline \S*[/\\]detekt-baseline.xml """)
assertThat(argumentString).contains("--report xml:")
Expand Down

0 comments on commit 9b38f67

Please sign in to comment.