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 4ae4e94..9ca8b35 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt @@ -14,23 +14,30 @@ class AndroidLinter : Linter { override val name: String = "Android lint" - override fun getErrors(project: Project): List = xmlParser(project.getLintReportFile()) - .typedChildren() - .filter { it.name() == "issue" && (it.attribute("severity") as String) == "Error" } - .map { errorNode -> - errorNode - .typedChildren() - .filter { it.name() == "location" } - .map { locationNode -> - AndroidLintError( - filePath = locationNode.attribute("file") as String, - fileLine = locationNode.attribute("line") as String?, - errorId = errorNode.attribute("id") as String, - description = errorNode.attribute("message") as String - ) - } - } - .flatten() + override fun getErrors(project: Project): List { + val lintRepostFile = project.getLintReportFile() + return if (lintRepostFile.exists()) { + xmlParser(lintRepostFile) + .typedChildren() + .filter { it.name() == "issue" && (it.attribute("severity") as String) == "Error" } + .map { errorNode -> + errorNode + .typedChildren() + .filter { it.name() == "location" } + .map { locationNode -> + AndroidLintError( + filePath = locationNode.attribute("file") as String, + fileLine = locationNode.attribute("line") as String?, + errorId = errorNode.attribute("id") as String, + description = errorNode.attribute("message") as String + ) + } + } + .flatten() + } else { + emptyList() + } + } override fun setupForProject(project: Project, extension: StaticAnalysisExtension) { project.beforeEvaluate { 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 68e4be7..c20433f 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt @@ -39,6 +39,7 @@ class CpdLinter : Linter { isSkipLexicalErrors = true language = "kotlin" minimumTokenCount = 60 + encoding = "UTF-8" } tasks.withType { reports.xml.required.set(true)