kotlin代码
上周,由于Kyiv Kotlin UG,我读了一篇有关Kotlin代码分析的文章。 我偶然发现了许多类似的帖子:它们展示了如何侵入构建版本以生成显示质量问题的文本报告。
冒张扬的风险,我声称这不是适当的软件工程。 这是一次黑客攻击:从长远来看,它没有任何价值。 代码质量是一个严肃的主题,应予以相应对待。 首先,需要对其进行评估,然后必须在项目的整个生命周期中对问题进行存储和比较。 好消息是实现这一目标的工具已经可用,我希望它是每个人构建管道的一部分: SonarQube 。
德泰
Detekt为Kotlin提供静态代码分析。
之前,我曾尝试启动一项为Kotlin开发SonarQube插件的计划。 它没有流行-并有其他兴趣可以追求。 很好,Detekt做得更好。
在Detekt的Github页面上,功能包括:
- 您的Kotlin项目的代码气味分析
- 基于逻辑代码行,McCabe复杂度和代码气味量的复杂度报告
- 高度可配置(规则集或规则级别)
- 用Kotlin的
`@Suppress
和Java的@SuppressWarnings
注释抑制发现- 指定代码气味阈值以破坏构建或打印警告
- 对基线进行气味编码并忽略旧项目的列表
- 可通过自己的规则集和FileProcessListener的扩展
除此之外,它还提供了一个插件以集成到SonarQube中,从而从以后的存储和比较功能中受益。
建立
SonarQube使安装新插件变得容易:嵌入式Marketplace功能列出了所有可用的已发布插件。 只需检查您想要的,就可以完成!
不幸的是,Detekt尚未进入市场。
有一个未解决的问题。 如果您想了解其进度,请订阅。
因此,设置插件是一个手动过程:
- 克隆Github仓库 :
git clone https://github.com/arturbosch/sonar-kotlin
- 编译插件
mvn package
- 将JAR复制到SonarQube插件文件夹( 即
$SONAR_HOME/extensions/plugins
)
运行检查
结论
在JVM生态系统中,许多工具已经可用-是免费的。 我所知道的大多数(如果不是全部)Java项目从很久以前就建立了构建管道:它们签出代码,对其进行编译,运行测试,执行质量检查等。为什么应该通过切换到Kotlin来丢弃那些管道? 通过仅提供缺少的组件,Detekt使得重用一个人的持续集成构建链变得容易。
kotlin代码