update static plugin

This commit is contained in:
Bogdan Terehov 2023-09-08 05:26:19 +03:00
parent 4dfed1b2a8
commit 0748ec235b
5 changed files with 24 additions and 11 deletions

View File

@ -24,7 +24,9 @@ class StaticAnalysisAndroidPlugin : StaticAnalysisPlugin() {
project.tasks.register("staticAnalysis") { project.tasks.register("staticAnalysis") {
setupStaticAnalysisTask( setupStaticAnalysisTask(
linters = linters, linters = linters,
buildVariant = applicationVariants.first { it.name.contains("Debug") }.name buildVariant = applicationVariants
.map { it.name.toLowerCase() }
.first { it.contains("debug") }
) )
} }
} }
@ -32,10 +34,14 @@ class StaticAnalysisAndroidPlugin : StaticAnalysisPlugin() {
} }
} }
override fun createLinters(): List<Linter> = listOf( override fun createLinters(extension: StaticAnalysisExtension): List<Linter> = mutableListOf<Linter>().apply {
DetektLinter(), add(DetektLinter())
CpdLinter(), if (extension.isCpdLinterEnabled) {
CpdLinter()
}
if (extension.isAndroidLinterEnabled) {
AndroidLinter() AndroidLinter()
) }
}
} }

View File

@ -13,7 +13,7 @@ class StaticAnalysisBackendPlugin : StaticAnalysisPlugin() {
} }
} }
override fun createLinters(): List<Linter> = listOf( override fun createLinters(extension: StaticAnalysisExtension): List<Linter> = listOf(
CpdLinter(), CpdLinter(),
DetektLinter() DetektLinter()
) )

View File

@ -2,5 +2,7 @@ package static_analysis.plugins
open class StaticAnalysisExtension( open class StaticAnalysisExtension(
var excludes: String = "", var excludes: String = "",
var buildScriptDir: String? = null var buildScriptDir: String? = null,
var isCpdLinterEnabled: Boolean = true,
var isAndroidLinterEnabled: Boolean = false,
) )

View File

@ -1,5 +1,6 @@
package static_analysis.plugins package static_analysis.plugins
import org.gradle.api.Action
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.Task import org.gradle.api.Task
@ -24,9 +25,10 @@ abstract class StaticAnalysisPlugin : Plugin<Project> {
extensions.create<StaticAnalysisExtension>(STATIC_ANALYSIS_EXT_NAME) extensions.create<StaticAnalysisExtension>(STATIC_ANALYSIS_EXT_NAME)
val linters = createLinters() val initData: StaticAnalysisExtension = extensions.getByType()
val linters = createLinters(initData)
linters.forEach { it.setupForProject(target, extensions.getByType()) } linters.forEach { it.setupForProject(target, initData) }
gradle.projectsEvaluated { gradle.projectsEvaluated {
createStaticAnalysisTasks(target, linters) createStaticAnalysisTasks(target, linters)
@ -39,7 +41,10 @@ abstract class StaticAnalysisPlugin : Plugin<Project> {
dependsOn(*(linters.map { it.getTaskNames(project, buildVariant) }.flatten().toTypedArray())) dependsOn(*(linters.map { it.getTaskNames(project, buildVariant) }.flatten().toTypedArray()))
} }
abstract fun createLinters(): List<Linter> abstract fun createLinters(extension: StaticAnalysisExtension): List<Linter>
abstract fun createStaticAnalysisTasks(project: Project, linters: List<Linter>) abstract fun createStaticAnalysisTasks(project: Project, linters: List<Linter>)
fun Project.staticAnalysis(configure: Action<StaticAnalysisExtension>): Unit =
(this as org.gradle.api.plugins.ExtensionAware).extensions.configure(STATIC_ANALYSIS_EXT_NAME, configure)
} }

View File

@ -64,7 +64,7 @@ complexity:
ignoreSingleWhenExpression: true ignoreSingleWhenExpression: true
ignoreSimpleWhenEntries: true ignoreSimpleWhenEntries: true
LabeledExpression: LabeledExpression:
active: true active: false
LargeClass: LargeClass:
active: true active: true
threshold: 800 threshold: 800