detekt verify implementation
Version 1.2.6
这是用于Kotlin的静态代码分析仪Detekt的插件,该插件可以验证是否根据应用于基本类型的注释实现了混凝土类。
包括以下DETEKT规则:
DataClass :要求将类扩展为数据类或对象声明。这保证了对equals和hashcode实现的可预测默认实现,即价值平等而不是参考平等。Immutable :需要上课或延长课程才能不变;它们可能不包含可突变类型(具有VAR属性的类型)的可变性能(VAR)或性质。由于该插件的性质,使用了语义版本的特定风味,对于衬里来说更有意义。任何次要更新都可能报告比上一个版本更多的错误。
通过detekt gradle配置块加载插件:
Groovy DSL
detekt {
dependencies {
detektPlugins " dk.cachet.detekt.extensions:detekt-verify-implementation:1.2.5 "
}
}由于此插件使用类型分辨率,因此使用基本detekt任务时规则将无法运行。根据Detekt文档,使用detektMain或自定义Detekt任务。
默认情况下,在detekt配置文件中未激活规则。要启用规则,请将其设置为active并指定annotationClass的完全限定名称,该名称确定要验证的具体类。例如:
verify-implementation :
DataClass :
active : true
annotationClass : " dk.cachet.carp.common.ImplementAsDataClass "
Immutable :
active : true
annotationClass : " dk.cachet.carp.common.Immutable "如果找不到注释类并且该规则是活跃的,则将抛出IllegalStateException 。
使用assumeNoAnnotations ,您可以指定完全合格的类型名称的列表,该列表假定他们没有将注释应用于它们。当插件未能分析已知不携带注释的类时,这可能很有用。
verify-implementation :
Immutable :
active : true
annotationClass : " dk.cachet.carp.common.Immutable "
assumeNoAnnotations : ['kotlin.Any']接下来描述了其他特定于规则的配置选项。
assumeImmutable可以列出完全合格的类名称,这些名称将无法验证并被认为是不可变的。当插件无法分析您知道不变的类时,这可能会很有用。示例配置: verify-implementation :
Immutable :
active : true
annotationClass : " dk.cachet.carp.common.Immutable "
includes : ['**/domain/**']
assumeImmutable : [
' dk.cachet.carp.common.DateTime ' ,
' kotlinx.serialization.json.Json '
]