diff --git a/gradle/plugins/.gitignore b/gradle/plugins/.gitignore index d7e7478..39d12d8 100644 --- a/gradle/plugins/.gitignore +++ b/gradle/plugins/.gitignore @@ -12,6 +12,7 @@ local.properties # Log Files *.log + .gradle .idea .DS_Store diff --git a/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt b/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt index 83295d3..ea06f40 100644 --- a/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt +++ b/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt @@ -32,15 +32,11 @@ class ApiGeneratorAndroidPlugin : ApiGeneratorPlugin() { } tasks .filterIsInstance() - .forEach { - it.source(outputDir) - } + .forEach { it.source(outputDir) } tasks .filterIsInstance() - .forEach { - it.source(outputDir) - } + .forEach { it.source(outputDir) } } } } diff --git a/gradle/plugins/src/main/java/apigen/ApiGeneratorBackendPlugin.kt b/gradle/plugins/src/main/java/apigen/ApiGeneratorBackendPlugin.kt index b68eccf..b4a8723 100644 --- a/gradle/plugins/src/main/java/apigen/ApiGeneratorBackendPlugin.kt +++ b/gradle/plugins/src/main/java/apigen/ApiGeneratorBackendPlugin.kt @@ -7,13 +7,11 @@ class ApiGeneratorBackendPlugin : ApiGeneratorPlugin() { override fun apply(target: Project) { super.apply(target) - with(target) { - val extension = getExtension() + val extension = target.getExtension() - extension.outputDirPath = file("src/main/kotlin").path - extension.recreateOutputDir = false - extension.outputLanguage = OutputLanguage.KotlinServer + extension.outputDirPath = target.file("src/main/kotlin").path + extension.recreateOutputDir = false + extension.outputLanguage = OutputLanguage.KotlinServer - } } } diff --git a/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt b/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt index e0fc6ec..7e9b607 100644 --- a/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt +++ b/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt @@ -12,7 +12,7 @@ abstract class ApiGeneratorPlugin : Plugin { companion object { const val API_GENERATOR_CONFIG = "apiGenerator" const val API_GENERATOR_EXT_NAME = "apiGenerator" - const val API_GENERATOR_VERSION = "1.4.0-beta5" + const val API_GENERATOR_DEFAULT_VERSION = "1.4.0-beta5" } override fun apply(target: Project) { @@ -29,7 +29,7 @@ abstract class ApiGeneratorPlugin : Plugin { configurations.create(API_GENERATOR_CONFIG) dependencies { - add(API_GENERATOR_CONFIG, "ru.touchin:api-generator:$API_GENERATOR_VERSION") + add(API_GENERATOR_CONFIG, "ru.touchin:api-generator:$API_GENERATOR_DEFAULT_VERSION") } extensions.create(API_GENERATOR_EXT_NAME) diff --git a/gradle/plugins/src/main/java/static_analysis/errors/AndroidLintError.kt b/gradle/plugins/src/main/java/static_analysis/errors/AndroidLintError.kt index b7b850b..6b87d81 100644 --- a/gradle/plugins/src/main/java/static_analysis/errors/AndroidLintError.kt +++ b/gradle/plugins/src/main/java/static_analysis/errors/AndroidLintError.kt @@ -7,6 +7,9 @@ class AndroidLintError( private val description: String ) : StaticAnalysisError { - override fun print(count: Int): String = "\n$count. Android Lint. $description ($errorId)\n\tat [$filePath${fileLine?.let { ":$it" }.orEmpty()}]" + override fun print(count: Int): String = "\n$count. Android Lint. $description ($errorId)\n\tat [$filePath$fileLinePrefix]" + + private val fileLinePrefix: String + get() = fileLine?.let { ":$it" }.orEmpty() } 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 3e19265..3853959 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/AndroidLinter.kt @@ -8,7 +8,7 @@ import static_analysis.errors.AndroidLintError import static_analysis.errors.StaticAnalysisError import static_analysis.plugins.StaticAnalysisExtension import static_analysis.utils.typedChildren -import static_analysis.utils.xmlParser +import xmlParser class AndroidLinter : Linter { @@ -51,14 +51,18 @@ class AndroidLinter : Linter { } } - override fun getTaskNames(project: Project, buildType: String?): List = project - .subprojects - .filter { it.plugins.hasPlugin(AppPlugin::class.java) } - .mapNotNull { subproject: Project -> - subproject.tasks.find { task -> - task.name.contains(buildType!!, ignoreCase = true) && task.name.contains("lint") - }?.path - } + override fun getTaskNames(project: Project, buildType: String?): List { + if (buildType == null) throw IllegalStateException("build type must not be null in android linter") + + return project + .subprojects + .filter { it.plugins.hasPlugin(AppPlugin::class.java) } + .mapNotNull { subproject: Project -> + subproject.tasks.find { task -> + task.name.contains(buildType, ignoreCase = true) && task.name.contains("lint") + }?.path + } + } private fun Project.getLintReportFile() = file("${rootProject.buildDir}/reports/lint-report.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 ca3ff7e..313d250 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/CpdLinter.kt @@ -10,7 +10,7 @@ import static_analysis.errors.StaticAnalysisError import static_analysis.plugins.StaticAnalysisExtension import static_analysis.utils.getSources import static_analysis.utils.typedChildren -import static_analysis.utils.xmlParser +import xmlParser class CpdLinter : Linter { @@ -50,7 +50,7 @@ class CpdLinter : Linter { .rootProject .tasks .withType() - .map { it.path } + .map(Cpd::getPath) private fun Project.getCpdReportFile() = file("${rootProject.buildDir}/reports/cpd.xml") 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..3905ce8 100644 --- a/gradle/plugins/src/main/java/static_analysis/linters/DetektLinter.kt +++ b/gradle/plugins/src/main/java/static_analysis/linters/DetektLinter.kt @@ -7,7 +7,7 @@ import static_analysis.errors.StaticAnalysisError import static_analysis.plugins.StaticAnalysisExtension import static_analysis.utils.getSources import static_analysis.utils.typedChildren -import static_analysis.utils.xmlParser +import xmlParser class DetektLinter : Linter { diff --git a/gradle/plugins/src/main/java/static_analysis/utils/Node.kt b/gradle/plugins/src/main/java/static_analysis/utils/Node.kt new file mode 100644 index 0000000..e8618e2 --- /dev/null +++ b/gradle/plugins/src/main/java/static_analysis/utils/Node.kt @@ -0,0 +1,5 @@ +package static_analysis.utils + +import groovy.util.Node + +fun Node.typedChildren() = children() as List diff --git a/gradle/plugins/src/main/java/static_analysis/utils/Extensions.kt b/gradle/plugins/src/main/java/static_analysis/utils/Project.kt similarity index 87% rename from gradle/plugins/src/main/java/static_analysis/utils/Extensions.kt rename to gradle/plugins/src/main/java/static_analysis/utils/Project.kt index c53ce16..f1c46cf 100644 --- a/gradle/plugins/src/main/java/static_analysis/utils/Extensions.kt +++ b/gradle/plugins/src/main/java/static_analysis/utils/Project.kt @@ -1,15 +1,9 @@ package static_analysis.utils -import groovy.util.Node -import groovy.util.XmlParser import org.gradle.api.Project import org.gradle.api.file.FileTree import java.io.File -fun Node.typedChildren() = children() as List - -fun xmlParser(file: File) = XmlParser().parse(file) - fun Project.getSources(excludes: String): FileTree = files( project .rootProject diff --git a/gradle/plugins/src/main/java/static_analysis/utils/ReportGenerator.kt b/gradle/plugins/src/main/java/static_analysis/utils/ReportGenerator.kt index caf543e..b18f8f4 100644 --- a/gradle/plugins/src/main/java/static_analysis/utils/ReportGenerator.kt +++ b/gradle/plugins/src/main/java/static_analysis/utils/ReportGenerator.kt @@ -12,10 +12,10 @@ object ReportGenerator { .map { linter -> linter to linter.getErrors(project) } val lintersResults = groupedErrors - .map { it.first.name to it.second.size } + .map { (linter, linterErrors) -> linter.name to linterErrors.size } val allErrors = groupedErrors - .map { it.second } + .map(Pair>::second) .flatten() val consoleReport = StringBuilder("\nSTATIC ANALYSIS ERRORS:").apply { diff --git a/gradle/plugins/src/main/java/static_analysis/utils/XmlUtils.kt b/gradle/plugins/src/main/java/static_analysis/utils/XmlUtils.kt new file mode 100644 index 0000000..f335b29 --- /dev/null +++ b/gradle/plugins/src/main/java/static_analysis/utils/XmlUtils.kt @@ -0,0 +1,4 @@ +import groovy.util.XmlParser +import java.io.File + +fun xmlParser(file: File) = XmlParser().parse(file) diff --git a/proguard/common.pro b/proguard/common.pro index 52715c2..d7f2023 100644 --- a/proguard/common.pro +++ b/proguard/common.pro @@ -1,5 +1,4 @@ -include rules/components.pro - -include rules/okhttp.pro -include rules/retrofit.pro -include rules/logansquare.pro @@ -7,3 +6,4 @@ -include rules/glide.pro -include rules/kaspersky.pro -include rules/appsflyer.pro +-include rules/moshi.pro