我使用checkstyle插件来格式化我的代码,我需要从检查操作中排除一些Java类。为此,我写了下面的代码:
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="src/main/java/package1/*.java"/>
</module>
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="src/main/java/package2/*.java"/>
</module>
我试图排除2个不同包中的所有类。但不幸的是,代码不起作用。我也试过如下:
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="src/main/java/package1/*.java"/>
<property name="fileNamePattern" value="src/main/java/package2/*.java"/>
</module>
但这并不奏效。checkstyle插件再次检查所有类。我如何才能做到这一点?
2条答案
按热度按时间6yt4nkrj1#
经过长时间的尝试,我找到了解决办法。我给出路径的格式是错误的。正确的格式应该是这样的:
如果我们想给给予多个包忽略,这是我们应该做的方式。给两个同名的属性不起作用。希望这对其他人有帮助。
of1yzvn42#
您的问题是
fileNamePattern
被视为regex,因此package1/*.java
中的x1将不匹配类名字母,但将是/
的量词。此外,让我们考虑一下checkstyle中的排除逻辑代码(截至2023年9月10日):
因为它使用的是
find
,而不是match
,所以公共路径可以省略,你可以使用正则表达式or
表达式,所以你的xml可能会被剥离为