【问题标题】:TreeWalker checks not working with Kotlin/Gradle?TreeWalker 检查不适用于 Kotlin/Gradle?
【发布时间】:2016-08-20 20:54:31
【问题描述】:

我想将CheckStyle (7.1)(旧版本也有同样的问题)用于使用 Gradle (2.14.1) 运行的 Kotlin 程序。

普通的模块/检查(例如NewlineAtEndOfFileFileTabCharacter、...)工作起来很神奇,但TreeWalker(例如AvoidStarImport)的子模块都没有。

gradle test 完成 BUILD SUCCESSFUL(我 200% 肯定应该有样式错误),并且 build/reports/checkstyle/main.html 文件中有 xx 个文件但 0 个错误。

TreeWalker 不能与 Kotlin 一起使用吗?我找不到有关此的任何信息:/

build.gradle文件中的配置:

...

apply plugin: 'checkstyle'

...

checkstyle {
    toolVersion = "7.1"
    configFile = new File(rootDir, "checkstyle.xml")
    checkstyleMain.source = "src/main/kotlin"
    checkstyleMain.ignoreFailures = false
    checkstyleMain.showViolations = true
}

...

【问题讨论】:

    标签: gradle kotlin checkstyle


    【解决方案1】:

    the source code 可以清楚地看出,TreeWalker 仅在具有.java 扩展名的文件上激活:

        public TreeWalker() {
            setFileExtensions("java");
        }
    

    此外,它在下面使用Java lexer,因此它不适用于任何其他语言。

    正如您已经注意到的,所有其他检查都适用于任何文件/语言。

    【讨论】:

    • 感谢您的指点,我在文档中发现无论如何我都可以强制检查 *.kt 文件,但正如您已经提到的,Java 词法分析器根本不喜欢那样。一些检查确实有效,但它们淹没在数百条 Java 语法通知中 ¯\_(ツ)_/¯
    【解决方案2】:

    我找不到它确实与 Kotlin 一起使用的任何信息,因此可以合理地假设它不能使用,特别是考虑到它是一种自动化流程的工具检查 Java 代码。

    【讨论】:

      【解决方案3】:

      Checkstyle 不支持 Kotlin。

      作为替代方案,IntelliJ IDEA Kotlin 1.1.50+ 插件支持根据为项目 (announced here) 配置的设置检查 Kotlin 代码样式。

      目前这只是一个 IDE 功能,但有一个正在进行中的 Gradle 插件具有相同的功能(尚不可用)。

      【讨论】:

        猜你喜欢
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多