是时候爱上静态分析仪了! 在Kotlin认识Detekt
如果您已经知道将要讨论的内容,并且只对实施项目感兴趣,请直接转到安装点。
这是什么

在没有实际执行所研究程序的情况下执行了软件分析(与动态分析相对)。
维基百科用您自己的话说,这是一个方便的工具,可帮助您遵守良好代码的规则。 通过错误代码的定义,可以非常灵活地自定义过滤器。 每次启动时将生成一个特定的报告,包括有关检测到的冲突的统计信息,有关它们的信息,从而可以确定发生冲突的位置及其类型。
静态分析器简化了审阅者的工作,并通常节省了开发团队的时间。
假设我们有一个良好的PR,但是作者给变量起的名字太长了,编写了可以轻松简化或违反Detekt配置文件中许多设置规则之一的代码,这些规则并不复杂,但是对PR进行代码审查是行不通的。
作者将再次需要在项目之间以及审稿人之间进行切换,我相信重复审阅不会带来任何乐趣。
如果速度快且不昂贵,则实现自动化。 (C)常识
什么是静态分析仪?
对于Java:对于Kotlin:我回答了您脑海中出现的问题,关于Kotlin的Spot-bugs不起作用。
将Detekt引入项目
检测可以通过几种方式安装:
- AndroidStudio 插件
- 摇篮
我认为通过Gradle进行的配置更加灵活,我在谈论它。
在官方网站上,有几种方法可以在项目中安装Detekt,具体取决于Gradle的版本,无论它是否为Android项目。 但是,以我实现android项目的经验,
某些说明不起作用 。 目前,该项目非常接近1.0版本。 撰写本文时的最新版本为候选版本1.0.0-RC14
这样啊
我们转到
Gradle官方网站并查看安装说明。
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.0.0-RC14" } }
我建议对Android项目坚持这一决定。
您可能已经注意到我删除了apply:插件行,因为我建议您将Detekt分离到一个单独的文件中,然后在其中应用apply。
阶段1:
因此,将此代码复制到应用程序级别build.gradle。
在那里,在
allprojects块中
,我们应该写一行以应用包含detekt设置的文件。
allprojects { apply from: "$rootDir/detekt.gradle" repositories { maven { url "https://plugins.gradle.org/m2/" } } }
阶段2:
然后,您需要创建
detekt.gradle文件
apply plugin: "io.gitlab.arturbosch.detekt" detekt { toolVersion = "1.0.0-RC14"
阶段3:
现在您需要创建
detekt-config.yml配置文件
这是
官方网站上的标准配置文件。
阶段4:
打开控制台并运行命令:
gradlew detekt仅此而已!
现在,您已经为项目准备了统计信息。 它们显示在控制台中,您也可以沿着以下路径找到它们:{u_project} \ app \ build \ reports \ detekt
总结
在
Jenkins中进行构建时使用Detekt非常方便
在具有超过2000个类的项目中,任务执行时间为4-7秒*。
我想说的是,使用静态分析仪可以稍微简化我们的工作。 加快开发过程并节省业务成本。
参考文献:
Detekt的github设置检测default-detekt-config.yml