Provide default value for ignoreFailures (#1787)

* Use Property's setter instead of using an extra one

* ignoreFailures isn't Optional

It must always have a value.

* Remove explicit setting for ignoreFailures
This commit is contained in:
Matthew Haughton
2019-07-28 19:19:48 +10:00
committed by Artur Bosch
parent b50afd0ea2
commit a84f1a30d7
3 changed files with 5 additions and 9 deletions

View File

@@ -321,7 +321,6 @@ val detektFormat by tasks.registering(Detekt::class) {
buildUponDefaultConfig = true
autoCorrect = true
setSource(files(projectDir))
ignoreFailures = false
include("**/*.kt")
include("**/*.kts")
exclude("**/resources/**")
@@ -340,7 +339,6 @@ val detektAll by tasks.registering(Detekt::class) {
buildUponDefaultConfig = true
setSource(files(projectDir))
config = files(project.rootDir.resolve("reports/failfast.yml"))
ignoreFailures = false
include("**/*.kt")
include("**/*.kts")
exclude("**/resources/**")

View File

@@ -136,12 +136,10 @@ open class Detekt : SourceTask(), VerificationTask {
get() = failFastProp.get()
set(value) = failFastProp.set(value)
private val ignoreFailuresProp: Property<Boolean> = project.objects.property(Boolean::class.javaObjectType)
internal val ignoreFailuresProp: Property<Boolean> = project.objects.property(Boolean::class.javaObjectType)
@Input
@Optional
override fun getIgnoreFailures(): Boolean = ignoreFailuresProp.get()
override fun getIgnoreFailures(): Boolean = ignoreFailuresProp.getOrElse(false)
override fun setIgnoreFailures(value: Boolean) = ignoreFailuresProp.set(value)
fun setIgnoreFailures(value: Provider<Boolean>) = ignoreFailuresProp.set(value)
@Optional
@Input
@@ -231,7 +229,7 @@ open class Detekt : SourceTask(), VerificationTask {
DetektInvoker.invokeCli(
project = project,
arguments = arguments.toList(),
ignoreFailures = ignoreFailuresProp.getOrElse(false),
ignoreFailures = ignoreFailuresProp.get(),
classpath = detektClasspath.plus(pluginClasspath),
taskName = name
)

View File

@@ -59,7 +59,7 @@ class DetektPlugin : Plugin<Project> {
it.setExcludes(defaultExcludes)
it.reportsDir.set(project.provider { extension.customReportsDir })
it.reports = extension.reports
it.setIgnoreFailures(project.provider { extension.ignoreFailures })
it.ignoreFailuresProp.set(project.provider { extension.ignoreFailures })
project.subprojects.forEach { subProject ->
subProject.tasks.firstOrNull { t -> t is Detekt && t.name == DETEKT_TASK_NAME }?.let { subprojectTask ->
@@ -90,7 +90,7 @@ class DetektPlugin : Plugin<Project> {
it.reports.xml.destination = File(extension.reportsDir, sourceSet.name + ".xml")
it.reports.html.destination = File(extension.reportsDir, sourceSet.name + ".html")
it.reports.txt.destination = File(extension.reportsDir, sourceSet.name + ".txt")
it.setIgnoreFailures(project.provider { extension.ignoreFailures })
it.ignoreFailuresProp.set(project.provider { extension.ignoreFailures })
it.description =
"EXPERIMENTAL & SLOW: Run detekt analysis for ${sourceSet.name} classes with type resolution"
}