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 '
]