TreeWalker检查不与Kotlin / Gradle一起工作?
我想使用CheckStyle(7.1) (旧版本有相同的问题)运行Gradle(2.14.1)的Kotlin程序。
正常的模块/检查(例如NewlineAtEndOfFile
, FileTabCharacter
,…)像魅力一样工作,但TreeWalker
(ex 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 } ...
从源代码中可以清楚的看到, TreeWalker
仅在扩展名为.java
文件上激活:
public TreeWalker() { setFileExtensions("java"); }
而且,它使用下面的Java词法分析器 ,所以它不适用于任何其他语言。
正如你已经注意到的,所有其他的检查都适用于任何文件/语言。
我找不到任何与Kotlin一起工作的信息,所以我们可以假定它没有,特别是考虑到它是一个自动执行Java代码检查过程的工具。
Checkstyle不支持Kotlin。
作为替代,IntelliJ IDEA Kotlin 1.1.50+插件支持检查Kotlin代码风格与项目配置的设置(在此处公布) 。
目前这只是一个IDE功能,但是还有一个功能相同的Gradle插件(尚未推出)。