java - 更改与模式匹配的文件的 Checkstyle 规则的严重性

标签 java checkstyle

我有一个如下所示的 checkstyle 文件:

<?xml version="1.0"?>
  <!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<module name="Checker">
  <module name="SuppressionFilter">
    <property name="file" value="./suppressions.xml"/>
  </module>

  <module name="FileTabCharacter">
    <property name="eachLine" value="true"/>
  </module>

  <module name="TreeWalker">
  ...
    <module name="JavadocMethod"/>
    <module name="JavadocType"/>
    <module name="JavadocVariable"/>
  ...
  </module>
</module>

还有一个如下所示的 suppressions.xml:

<suppressions>
  <suppress checks="JavadocMethod" files="[/\\]src[/\\]test[/\\]java[/\\]"/>
  <suppress checks="JavadocType" files="[/\\]src[/\\]test[/\\]java[/\\]"/>
  <suppress checks="JavadocVariable" files="[/\\]src[/\\]test[/\\]java[/\\]"/>
</suppressions>

这在过去工作得很好,禁用 Javadoc 检查测试目录中的任何文件。

但是,现在我们希望在测试文件缺少 javadoc 时显示警告,而不是完全忽略它,但对于不在测试目录中的文件,我们希望仍然具有错误严重性。

我已经尝试过了,但没有成功。有办法做到这一点吗?

最佳答案

是的,您可以更改不同文件组的严重性。 (Javadoc 问题的错误严重性对我来说似乎相当苛刻,但很好。)

基本思路是将 Checkstyle 配置为同时生成两种严重性,然后抑制不需要的严重性。为此,请为您的检查提供一个 id(为简洁起见,仅作为 JavadocMethod 的示例):

<module name="JavadocMethod">
    <property name="id" value="jmwarn"/>
    <property name="severity" value="warning"/>
</module>
<module name="JavadocMethod">
    <property name="id" value="jmerr"/>
    <property name="severity" value="error"/>
</module>

然后,在您的抑制文件中,您可以控制哪些文件获得哪种严重性:

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
    <suppress files="[/\\]src[/\\]test[/\\]" id="jmerr" />
    <suppress files="[\\/]src[\\/]main[\\/]" id="jmwarn" />
</suppressions>

关于java - 更改与模式匹配的文件的 Checkstyle 规则的严重性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28360546/

相关文章:

maven - 如何使用 checkstyle-plugin 验证源文件中使用的编码?

java - 如何将对象从 servlet 传递到调用 JSP

java - 图像未通过位图从我的画廊上传

java - 将扫描仪类与 GUI 一起使用

java - Checkstyle 特定方法的多行正则表达式

java - 为 checkstyle 实现自定义模块

java - 如何生成 Checkstyle 报告?

java - Hibernate 4.3(使用 Netbeans 的 JavaServer Faces)返回零行的表

java - 如何获取SQLite 'VACUUM'进度

java - Checkstyle 检查失败。如何为参数 List< 编写文档?扩展 T> 记录列表?