detekt verify implementation
Version 1.2.6
これは、Kotlinの静的コードアナライザーであるDetektのプラグインであり、ベースタイプに適用された注釈に従って指定されているようにコンクリートクラスが実装されているかどうかを確認できます。
次のDetektルールが含まれています。
DataClass :データクラスまたはオブジェクト宣言になるには、クラスを拡張する必要があります。これにより、参照equalsではなく、 hashcode実装、つまり価値平等の予測可能なデフォルト実装が保証されます。Immutable :クラスまたは拡張クラスが不変である必要があります。それらには、可変性(var)または可変型(var特性を持つタイプ)のプロパティを含めることはできません。このプラグインの性質により、特定のセマンティックバージョン化のフレーバーが使用されており、リンジターにとってより理にかなっています。マイナーアップデートは、以前のリリースよりも多くのエラーを報告する場合があります。
Detekt Gradle構成ブロックを介してプラグインをロードします。
グルーヴィー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 '
]