我在代码中使用Java14功能。从2020年9月起,这将在Checkstyle中实现。在此之前,它会导致异常。
示例java代码:
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
我将checkstyle配置为不在异常时停止:
<property name="haltOnException" value="false"/>
这仍然导致checkstyle失败:
ant:checkstyle] [ERROR] /home/runner/work/jabref/jabref/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java:1: Got an exception - com.puppycrawl.tools.checkstyle.api.CheckstyleException: IllegalStateException occurred while parsing file /home/runner/work/jabref/jabref/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java.
> Task :checkstyleMain
[ant:checkstyle] at com.puppycrawl.tools.checkstyle.JavaParser.parse(JavaParser.java:105)
检查时是否可以忽略解析错误?
我仍然想检查其他类
您必须使用https://checkstyle.org/config_filefilters.html#BeforeExecutionExclusionFileFilter在Checkstyle配置中告诉Checkstyle根本不处理这些文件。这将排除所有在所述文件上运行的模块,包括使用Java解析器的模块和不使用Java语法分析器的模块。Checkstyle中没有其他方法可以避免解析这些文件。
我不太了解Gradle,但Checkstyle命令行有-e
和-x
参数,也可以忽略文件。这将导致与上述过滤器相同类型的排除。如果gradle可以使用Checkstyle的命令行,那么这是另一个选项,但同样,只是以不同的方式复制过滤器。
您可以使用:来实现它
checkstyle {
sourceSets = []
}
也可以使用命令行参数:
gradle build -x checkstyleMain