抑制某些 class 的所有规则,但保留一个启用
Suppress all rules for certain class but leave one enabled
我想取消对特定 类 的所有检查,但启用特定的检查。
我不想明确列出所有我想禁止的规则(如此处所示:https://checkstyle.sourceforge.io/config_filters.html#SuppressionFilter),而是要禁用所有规则,然后启用一些特定规则。
在文档中我发现这会禁用所有 ".*"
:
的检查
<suppress files="[/\]target[/\]" checks=".*"/>
我想要的是一种简短、优雅的方法,在此处添加不会为此文件抑制的单个规则。请帮助我,或者提供证据证明唯一的方法是实际列出所有要明确禁止的规则。
基本上,最快的方法是使用负前瞻修改检查正则表达式,例如
<suppress files="[/\]target[/\]" checks="^(?!(YourCheckName)).+"/>
它不会为您的检查抑制违规行为。
但我会推荐其他方式 - 为一次检查创建单独的配置并使用 BeforeExecutionExclusionFileFilter 仅包含您要检查的文件。这种方法更好,因为它更清晰并避免了很多不必要的工作,因为仅在解析和分析文件后才应用抑制。
strkk,我选择只编写正则表达式规则来禁止所有规则检查,但名称中包含“Import”的规则除外。 “Import”是在规则名称的开头、中间还是结尾都没有关系。
为此,我使用了 following regexp:
checks="^((?!Import).)*$"/>
你可以在这里测试我的正则表达式:https://regex101.com/r/YC6QuU/1
strkk,如果所需名称位于名称的末尾或中间,则您的正则表达式不起作用。参见:https://regex101.com/r/XvPISI/1
但如果有人遇到同样的问题,请考虑使用 BeforeExecutionExclusionFileFilter,就像 strkk 所建议的那样。
我想取消对特定 类 的所有检查,但启用特定的检查。
我不想明确列出所有我想禁止的规则(如此处所示:https://checkstyle.sourceforge.io/config_filters.html#SuppressionFilter),而是要禁用所有规则,然后启用一些特定规则。
在文档中我发现这会禁用所有 ".*"
:
<suppress files="[/\]target[/\]" checks=".*"/>
我想要的是一种简短、优雅的方法,在此处添加不会为此文件抑制的单个规则。请帮助我,或者提供证据证明唯一的方法是实际列出所有要明确禁止的规则。
基本上,最快的方法是使用负前瞻修改检查正则表达式,例如
<suppress files="[/\]target[/\]" checks="^(?!(YourCheckName)).+"/>
它不会为您的检查抑制违规行为。
但我会推荐其他方式 - 为一次检查创建单独的配置并使用 BeforeExecutionExclusionFileFilter 仅包含您要检查的文件。这种方法更好,因为它更清晰并避免了很多不必要的工作,因为仅在解析和分析文件后才应用抑制。
strkk,我选择只编写正则表达式规则来禁止所有规则检查,但名称中包含“Import”的规则除外。 “Import”是在规则名称的开头、中间还是结尾都没有关系。 为此,我使用了 following regexp:
checks="^((?!Import).)*$"/>
你可以在这里测试我的正则表达式:https://regex101.com/r/YC6QuU/1
strkk,如果所需名称位于名称的末尾或中间,则您的正则表达式不起作用。参见:https://regex101.com/r/XvPISI/1
但如果有人遇到同样的问题,请考虑使用 BeforeExecutionExclusionFileFilter,就像 strkk 所建议的那样。