在checkstyle中使用ID标记的supressions

时间:2012-11-28 13:13:38

标签: java javadoc checkstyle

我想让checkstyle忽略测试中@throws子句的javadoc缺失,但是在非测试中抱怨。

因为抑制文件不支持JavadocMethod的子属性,所以我不得不完全忽略测试中的javadoc,或者根本不忽略,没有粒度。这也是this other question.

的结论

以下是我现在正在尝试的内容:我可以在checkstyle配置中使用两个具有不同id的JavadocMethod模块(例如testnotest),并选择性地压缩test模块非测试,反之亦然?

我无法让这个工作,我开始认为我不能在checkstyle中有一个重复的模块。任何见解?

以下是有关配置xml中的JavadocMethod的规则:

<module name="JavadocMethod">
  <property name="id" value="nontest"/>
</module>
<module name="JavadocMethod">
  <property name="id" value="test"/>
  <property name="allowMissingThrowsTags" value="true"/>
</module>

这是我的抑制文件:

<suppressions>
   <!-- Supress non-test-doc on tests -->
   <suppress id="nontestdoc" files=".*(?:Test|IT).*java" />
   <suppress id="testdoc" files=".*(?!Test|IT).*java" />
</suppressions>

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以在checkstyle中使用重复的模块。

分别使用Indentation模块与tab 2tab 4进行了尝试。并使用suppression.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 id="IndnA" files=".*\.java"/>
    <suppress id="IndnB" files=".*\.java"/>
</suppressions>

什么是正则表达式.*(?:Test|IT).*java.*(?!Test|IT).*java?你为什么使用LookAhead?

请检查文件.*\.java是否有效。