运行 Checkstyle 在所有项目文件上使用 Gradle

Run Checkstyle using Gradle on all project files

我想将 Checkstyle 规则引入 Gradle 项目,即存储库中的任何文件都不能包含制表符,包括源集之外的文件(例如 README.md)。

我试过以下配置:

apply plugin: 'java'
apply plugin: 'checkstyle'

checkstyle {
    checkstyleMain.source = '.'
}

但后来我得到异常:

Failed to capture snapshot of input files for task 'checkstyleMain' during up-to-date check.  See stacktrace for details.
Failed to create MD5 hash for file .gradle.7\taskArtifacts\cache.properties.lock.

这意味着我需要排除 .gradle 目录,很可能还有 .git.idea 等其他目录,但我该怎么做呢?

这是适合我的解决方案。它分析项目中的所有文件,除了目录 .git.ideagradlebuild 和其他 IntelliJ IDEA 或 Gradle 特定的自动生成文件。

apply plugin: 'java'
apply plugin: 'checkstyle'

checkstyle {
    toolVersion = '6.12.1'
}

checkstyleMain {
    source = fileTree('.') {
        excludes = ['.*/**', 'gradle*', 'build/**', '*.iml', '*.log', '**/*.jar']
    }
}