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 fa6ff5b..5365ffe 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt @@ -9,28 +9,33 @@ import static_analysis.errors.StaticAnalysisError import static_analysis.plugins.StaticAnalysisExtension import static_analysis.utils.typedChildren import static_analysis.utils.xmlParser +import java.io.FileNotFoundException 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 = try { + 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() + } catch (ex: FileNotFoundException) { + listOf() + } 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)