如何在Checkstyle中取消对文件的所有检查?
我正在做一个第三方类的覆盖,我想压制所有的检查(因为我只是保持它,直到补丁被接受)。
有没有办法抑制一个文件的所有检查?
我尝试使用“*”,但失败。
不知道你使用的是命令行还是IDE,但是你基本上需要一个suppresions文件。 如果您手动编辑Checkstyleconfiguration文件,请为其添加一个新模块:
<module name="SuppressionFilter"> <property name="file" value="mysuppressions.xml" /> </module>
你的mysuppression.xml
可以是这样的:
<?xml version="1.0"?> <!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <suppressions> <suppress files="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/> </suppressions>
“ files
”属性的值基本上是源文件的正则expression式,“ checks
”属性的值是正则expression式,用于检查跳过的内容(“ [a-zA-Z0-9]*
”基本上是指跳过所有内容) 。 这是你正在寻找的模式,我猜?
我能够在我的checks.xml文件中添加SuppressionCommentFilter标签来压制检查:
首先,我将FileContentHolder标签添加为TreeWalker标签的子项:
<module name="TreeWalker"> ... <module name="FileContentsHolder"/> ... </module>
然后我在checks.xml中添加了SuppressionCommentFilter:
<module name="SuppressionCommentFilter"/>
在每个我想压制检查的文件中,我在文件的第一行插入了下面的注释:
// CHECKSTYLE:OFF
exception80的答案帮了很多。 借助他的暗示 – 使用正则expression式模式匹配,我还能够通过将这个添加到checkstyle-suppressions.xml文件中来抑制整个包的checkstyle。 例如。 跳过所有在jaxb包下自动生成的java文件的checkstyle检查,
<suppressions> <suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" /> </suppressions>
如果您将Checkclipse Eclipse插件用于Checkstyle,则可以通过转到项目属性下的Checkclipse> File Filter选项卡来包含或排除文件模式(包括目录)。 例如,我的项目包含顶层的src和testing目录。 我希望Checkstyle只应用于src目录中的文件(省略testing ),所以我添加了一个如下的include模式:
src/.+java$
正如你所看到的,它使用正则expression式式样的语法来指定模式。
有一个选项可以忽略写保护的文件。 或包中的文件。
如果您希望在检查的项目中没有一组文件,则可以过滤这些文件,以便通过创build文件filter来检查这些文件
文件filter使用正则expression式来确定要排除的文件。 正则expression式运行在完整的文件名上 – 正因为如此,你也可以排除整个文件夹。 在这种情况下,如果您愿意,您可以排除整个包裹。
如果你有一点谷歌 – 你可能会find一些Checkstyleconfiguration属性文件,有你想要的东西的例子。 我build议你这样做之后 – 将它保存为一个模板,以便将来可以参考它