标签: detekt

Ktlint 与 Detekt - 差异列表

我搜索了很多网站,但没有找到任何比较 Ktlint 与 Detekt 的信息。我需要知道差异,而不是共同特征。我想选择一个,但我不会亲自测试它们。有人可以给我一些差异吗?

lint static-code-analysis kotlin detekt

9
推荐指数
0
解决办法
7276
查看次数

ktlint 作为 detekt 中的格式化程序

我正在使用 detekt 和 ktlint 来格式化我的代码,如下所示。

detekt.gradle

ext{
    toolVersion = "1.0.0-RC16"
}
detekt {
    input = files(...)

    filters = ".*/resources/.*,.*/build/.*"
    baseline = file("${project.rootDir}/tools/detekt-baseline.xml")
    reports{
        html{
            enabled = true
        }
        xml{
            enabled = false
        }
    }
    config = files(file("$project.rootDir/tools/detekt.yml"))
}

dependencies {
    detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$toolVersion"
}
Run Code Online (Sandbox Code Playgroud)

检测基线.yml

autoCorrect: true

build:
  maxIssues: 10
  weights:
  # complexity: 2
  # LongParameterList: 1
  # style: 1
  # comments: 1
Run Code Online (Sandbox Code Playgroud)

项目级build.gradle

buildscript {
    ext{...}
    repositories {...}
    dependencies {...}
}

plugins{
    id "io.gitlab.arturbosch.detekt" version "1.0.0-RC16"
}

apply from: …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin detekt

6
推荐指数
1
解决办法
1733
查看次数

检测:自动更正功能不起作用

我在我的项目中包含了 detekt ( https://github.com/arturbosch/detekt/ ):

根构建.gradle

buildscript {
    ext.kotlin_version = '1.3.50'
    ext.detekt_version = "1.0.1"
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$detekt_version"
    }
}

plugins {
    id("io.gitlab.arturbosch.detekt").version("1.0.1")
}
Run Code Online (Sandbox Code Playgroud)

应用程序构建.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.gitlab.arturbosch.detekt'
Run Code Online (Sandbox Code Playgroud)

android { // .. 只是默认值 }

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    // ... other dependencies

    detekt "io.gitlab.arturbosch.detekt:detekt-formatting:$detekt_version"
    detekt("io.gitlab.arturbosch.detekt:detekt-cli:$detekt_version")

}

detekt {
    toolVersion = "$detekt_version"
    input = files("src/main/java") …
Run Code Online (Sandbox Code Playgroud)

android gradle detekt

5
推荐指数
1
解决办法
5543
查看次数

如何摆脱使用 Spring Boot 时 Detekt 给出的 SpreadOperator 性能警告?

最近,我在我的应用程序中添加了Detekt分析器。

在我运行 detekt (./gradlew detekt) 后,我在我的主应用程序类中收到了 SpreadOperator 警告。

代码警告: runApplication<MessCallsApplication>(*args)

您可以在此处阅读有关 SpreadOperator 警告的信息: [SpreadOperator Warning][2]

我的主要课程:

@SpringBootApplication(exclude = [RedisAutoConfiguration::class])
@EnableCircuitBreaker
@EnableScheduling
class MyApplication {

    companion object : KLogging()
}

fun main(args: Array<String>) {
    Thread.setDefaultUncaughtExceptionHandler { _, exception ->
        MessCallsApplication.logger.error(exception) { "Uncaught exception" }
    }

    runApplication<MessCallsApplication>(*args)
}
Run Code Online (Sandbox Code Playgroud)

问题是,摆脱 SpreadOperator 警告的最佳做法是什么?或者是不可能的?

java spring kotlin detekt

5
推荐指数
2
解决办法
1754
查看次数

在 Gradle 中禁用自动 Detekt 运行

我已将Detekt添加到我的 Gradle 项目中。我的意图是仅按需调用detekt,因为它会产生很多误报。但是,该detekt任务默认处于活动状态(并破坏构建)。我怎样才能避免这种依赖呢?

我尝试过的:我添加了一个有条件gradle.taskGraph.beforeTask设置的块enabled = false

gradle.taskGraph.beforeTask {
    val containsDetektTaskCall = gradle.startParameter.taskNames.contains("detekt")
    if (name.startsWith("detekt") && !containsDetektTaskCall) {
        logger.lifecycle("Skipping all 'detekt-plugin' tasks")
        enabled = false
    }
}
Run Code Online (Sandbox Code Playgroud)

我感觉这 7 行代码只是为了覆盖一个任务依赖,确实有点多了。我希望得到一个一般的 Gradle 答案以及一些特定于 Detekt 的方法。

gradle kotlin detekt gradle-kotlin-dsl

5
推荐指数
1
解决办法
3615
查看次数

如何抑制 Detekt 的 WildcardImport 和 MatchingDeclarationName?

我需要抑制两个错误:WildcardImport 和 MatchingDeclarationName。问题是它需要应用于整个文件,有什么办法可以做到这一点吗?

kotlin detekt

2
推荐指数
1
解决办法
4009
查看次数