忽略gradle版本中的checkstyle异常

问题描述 投票:0回答:3

我正在代码中使用Java14功能。在Checkstyle from September 2020上可以实现。在此之前,causes an exception

Example java code

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)

是否有可能在检查时忽略解析错误?

我仍然想检查其他班级

gradle checkstyle gradle-plugin
3个回答
0
投票

您可以使用:

实现
checkstyle {
    sourceSets = []
}

也可以使用命令行参数:

gradle build -x checkstyleMain

0
投票

您必须在Checkstyle配置中使用https://checkstyle.org/config_filefilters.html#BeforeExecutionExclusionFileFilter来告诉Checkstyle根本不处理这些文件。这将阻止所有模块在上述文件上运行,包括使用Java解析器的模块和不使用Java解析器的模块。 Checkstyle没有其他方法可以避免解析这些文件。

我不太了解Gradle,但是Checkstyle命令行具有-e-x参数,它们也忽略文件。这导致与上述过滤器相同类型的排除。如果gradle可以使用Checkstyle的命令行,那么这是另一个选择,但是同样,只需以不同的方式复制过滤器即可。


-1
投票

另一种方法是忽略(或完全关闭CheckStyle)给定的一段代码:

//CHECKSTYLE:OFF
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:ON

这样,当CheckStyle就绪时,您可以轻松地搜索这些“术语”并将其删除。这样,该课程的其余部分仍可以进行处理,现在就可以利用有效的方法。

注意,CHECKSTYLE:{OFF|ON}的配置可以不同,但​​concept相同。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.