diff --git a/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt b/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt index 8550e04..fa6ff5b 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt @@ -33,8 +33,8 @@ class AndroidLinter : Linter { .flatten() override fun setupForProject(project: Project, extension: StaticAnalysisExtension) { - project.gradle.projectsEvaluated { - project.subprojects + project.beforeEvaluate { + subprojects .mapNotNull { it.extensions.findByType() } .first() .lintOptions.apply { @@ -45,8 +45,8 @@ class AndroidLinter : Linter { htmlReport = false isCheckDependencies = true disable("MissingConstraints", "VectorRaster") - xmlOutput = project.getLintReportFile() - lintConfig = project.file("${extension.buildScriptDir}/static_analysis_configs/lint.xml") + xmlOutput = getLintReportFile() + lintConfig = file("${extension.buildScriptDir}/static_analysis_configs/lint.xml") } } } diff --git a/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt b/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt index 1e7395a..68e4be7 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt @@ -34,15 +34,18 @@ class CpdLinter : Linter { } override fun setupForProject(project: Project, extension: StaticAnalysisExtension) { - project.extensions.findByType()!!.apply { - isSkipLexicalErrors = true - language = "kotlin" - minimumTokenCount = 60 - } - project.tasks.withType { - reports.xml.destination = project.getCpdReportFile() - ignoreFailures = true - source = project.getSources(extension.excludes) + project.afterEvaluate { + extensions.findByType()!!.apply { + isSkipLexicalErrors = true + language = "kotlin" + minimumTokenCount = 60 + } + tasks.withType { + reports.xml.required.set(true) + reports.xml.destination = getCpdReportFile() + ignoreFailures = true + source = getSources(extension.excludes) + } } } diff --git a/gradle/plugins/src/main/java/static_analysis/linters/DetektLinter.kt b/gradle/plugins/src/main/java/static_analysis/linters/DetektLinter.kt index 0aafb22..efb1ea8 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/DetektLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/DetektLinter.kt @@ -32,27 +32,27 @@ class DetektLinter : Linter { .flatten() override fun setupForProject(project: Project, extension: StaticAnalysisExtension) { - project - .tasks - .withType(Detekt::class.java) { - exclude("**/test/**") - exclude("resources/") - exclude("build/") - exclude("tmp/") - jvmTarget = "1.8" + project.afterEvaluate { + tasks.withType(Detekt::class.java) { + exclude("**/test/**") + exclude("resources/") + exclude("build/") + exclude("tmp/") + jvmTarget = "1.8" - config.setFrom(project.files("${extension.buildScriptDir!!}/static_analysis_configs/detekt-config.yml")) - reports { - txt.enabled = false - html.enabled = false - xml { - enabled = true - destination = project.getDetektReportFile() - } + config.setFrom(files("${extension.buildScriptDir!!}/static_analysis_configs/detekt-config.yml")) + reports { + txt.enabled = false + html.enabled = false + xml { + enabled = true + destination = getDetektReportFile() } - - source = project.getSources(extension.excludes) } + + source = getSources(extension.excludes) + } + } } override fun getTaskNames(project: Project, buildType: String?): List = listOf(":detekt") diff --git a/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisAndroidPlugin.kt b/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisAndroidPlugin.kt index c433e81..7b7b4ee 100644 --- a/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisAndroidPlugin.kt +++ b/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisAndroidPlugin.kt @@ -28,8 +28,6 @@ class StaticAnalysisAndroidPlugin : StaticAnalysisPlugin() { ) } } - - } } } diff --git a/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisPlugin.kt b/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisPlugin.kt index f9298df..369fb90 100644 --- a/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisPlugin.kt +++ b/gradle/plugins/src/main/java/static_analysis/plugins/StaticAnalysisPlugin.kt @@ -26,9 +26,7 @@ abstract class StaticAnalysisPlugin : Plugin { val linters = createLinters() - beforeEvaluate { - linters.forEach { it.setupForProject(target, extensions.getByType()) } - } + linters.forEach { it.setupForProject(target, extensions.getByType()) } gradle.projectsEvaluated { createStaticAnalysisTasks(target, linters)